From 4ff4f9c531feb99561105117b6ceeb4eb85d7829 Mon Sep 17 00:00:00 2001 From: Andreas Hansson Date: Thu, 26 May 2016 11:56:24 +0100 Subject: mem: Do not set cacheResponding on MSHR snoop if not responding This patch changes the flow control for HSHR::handleSnoop to ensure that we only set cacheResponding on the snoop packet if we are actually responding. This avoids situations where a responder is stalling indefinitely on a response that never arrives. Change-Id: I691dd01755b614b30203581aa74fc743b350eacc Reviewed-by: Nikos Nikoleris --- src/mem/cache/mshr.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/mem/cache/mshr.cc b/src/mem/cache/mshr.cc index 56284dcc6..71cfca7bd 100644 --- a/src/mem/cache/mshr.cc +++ b/src/mem/cache/mshr.cc @@ -400,7 +400,7 @@ MSHR::handleSnoop(PacketPtr pkt, Counter _order) PacketPtr cp_pkt = will_respond ? new Packet(pkt, true, true) : new Packet(new Request(*pkt->req), pkt->cmd); - if (isPendingModified()) { + if (will_respond) { // we are the ordering point, and will consequently // respond, and depending on whether the packet // needsWritable or not we either pass a Shared line or a -- cgit v1.2.3