607a608,614
>
> // let the snoop filter know about the success of the send
> // operation, and do it even before sending it onwards to
> // avoid situations where atomic upward snoops sneak in
> // between and change the filter state
> snoopFilter->updateRequest(pkt, *slavePorts[slave_port_id], false);
>
616a624,632
> // forwardAtomic snooped into peer caches of the sender, and if
> // this is a clean evict, but the packet is found in a cache, do
> // not forward it
> if (pkt->cmd == MemCmd::CleanEvict && pkt->isBlockCached()) {
> DPRINTF(CoherentXBar, "recvAtomic: Clean evict 0x%x still cached, "
> "not forwarding\n", pkt->getAddr());
> return 0;
> }
>
629,630c645,646
< // Lower levels have replied, tell the snoop filter
< if (snoopFilter && !system->bypassCaches() && pkt->isResponse()) {
---
> // if lower levels have replied, tell the snoop filter
> if (!system->bypassCaches() && snoopFilter && pkt->isResponse()) {