cpu: Always mask the snoop address when performing lock check
authorAndreas Hansson <andreas.hansson@arm.com>
Tue, 2 Dec 2014 11:08:00 +0000 (06:08 -0500)
committerAndreas Hansson <andreas.hansson@arm.com>
Tue, 2 Dec 2014 11:08:00 +0000 (06:08 -0500)
Ensure the snoop address check is always using a cache-block aligned
address. This patch updates Alpha and Mips to match the other ISAs.

src/arch/alpha/locked_mem.hh
src/arch/mips/locked_mem.hh

index 253b94be4f4ccfbd31beca1e6d3b03dc36bb8005..7998cbdf1fa2e92c6f8731ab1b288c5964b89e81 100644 (file)
@@ -76,9 +76,7 @@ handleLockedSnoop(XC *xc, PacketPtr pkt, Addr cacheBlockMask)
         return;
 
     Addr locked_addr = xc->readMiscReg(MISCREG_LOCKADDR) & cacheBlockMask;
-    Addr snoop_addr = pkt->getAddr();
-
-    assert((cacheBlockMask & snoop_addr) == snoop_addr);
+    Addr snoop_addr = pkt->getAddr() & cacheBlockMask;
 
     if (locked_addr == snoop_addr)
         xc->setMiscReg(MISCREG_LOCKFLAG, false);
index 5b0f8a1b8e5ca76b6edb2a75b3331fcf16668297..a5ff467b3eb63d41ca5f19d18e13b72e35be63ed 100644 (file)
@@ -66,9 +66,7 @@ handleLockedSnoop(XC *xc, PacketPtr pkt, Addr cacheBlockMask)
         return;
 
     Addr locked_addr = xc->readMiscReg(MISCREG_LLADDR) & cacheBlockMask;
-    Addr snoop_addr = pkt->getAddr();
-
-    assert((cacheBlockMask & snoop_addr) == snoop_addr);
+    Addr snoop_addr = pkt->getAddr() & cacheBlockMask;
 
     if (locked_addr == snoop_addr)
         xc->setMiscReg(MISCREG_LLFLAG, false);