cpu: Always mask the snoop address when performing lock check
Ensure the snoop address check is always using a cache-block aligned address. This patch updates Alpha and Mips to match the other ISAs.
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user