365,366d364
< // Update the residency of the cache line.
< sf_item.holder |= slave_mask;
368c366,380
< assert(sf_item.holder | sf_item.requested);
---
> // Update the residency of the cache line.
>
> if (cpkt->req->isCacheMaintenance()) {
> // A cache clean response does not carry any data so it
> // shouldn't change the holders, unless it is invalidating.
> if (cpkt->isInvalidate()) {
> sf_item.holder &= ~slave_mask;
> }
> eraseIfNullEntry(sf_it);
> } else {
> // Any other response implies that a cache above will have the
> // block.
> sf_item.holder |= slave_mask;
> assert(sf_item.holder | sf_item.requested);
> }