diff options
author | Andreas Hansson <andreas.hansson@arm.com> | 2016-05-26 11:56:24 +0100 |
---|---|---|
committer | Andreas Hansson <andreas.hansson@arm.com> | 2016-05-26 11:56:24 +0100 |
commit | 4ff4f9c531feb99561105117b6ceeb4eb85d7829 (patch) | |
tree | cdadadcd30703a64cca43c4eff5361a47c7efe80 /src | |
parent | 90de9be2effedc706ac45a84dec18cc328d07e64 (diff) | |
download | gem5-4ff4f9c531feb99561105117b6ceeb4eb85d7829.tar.xz |
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 <nikos.nikoleris@arm.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/mem/cache/mshr.cc | 2 |
1 files changed, 1 insertions, 1 deletions
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 |