531,534c531,535
< // delay processing of returned data until next CPU clock edge
< Tick time = pkt->req->getTime();
< while (time < curTick)
< time += lat;
---
> if (pkt->isResponse()) {
> // delay processing of returned data until next CPU clock edge
> Tick time = pkt->req->getTime();
> while (time < curTick)
> time += lat;
536,539c537,540
< if (time == curTick)
< cpu->completeIfetch(pkt);
< else
< tickEvent.schedule(pkt, time);
---
> if (time == curTick)
> cpu->completeIfetch(pkt);
> else
> tickEvent.schedule(pkt, time);
541c542,547
< return true;
---
> return true;
> }
> else {
> //Snooping a Coherence Request, do nothing
> return true;
> }
603,606c609,613
< // delay processing of returned data until next CPU clock edge
< Tick time = pkt->req->getTime();
< while (time < curTick)
< time += lat;
---
> if (pkt->isResponse()) {
> // delay processing of returned data until next CPU clock edge
> Tick time = pkt->req->getTime();
> while (time < curTick)
> time += lat;
608,611c615,618
< if (time == curTick)
< cpu->completeDataAccess(pkt);
< else
< tickEvent.schedule(pkt, time);
---
> if (time == curTick)
> cpu->completeDataAccess(pkt);
> else
> tickEvent.schedule(pkt, time);
613c620,625
< return true;
---
> return true;
> }
> else {
> //Snooping a coherence req, do nothing
> return true;
> }