From: Andreas Hansson Date: Tue, 2 Dec 2014 11:08:00 +0000 (-0500) Subject: cpu: Always mask the snoop address when performing lock check X-Git-Tag: stable_2015_04_15~93 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=74bbe20141aec3bd7639000fb6ad8ff5fe1a7237;p=gem5.git 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. --- diff --git a/src/arch/alpha/locked_mem.hh b/src/arch/alpha/locked_mem.hh index 253b94be4..7998cbdf1 100644 --- a/src/arch/alpha/locked_mem.hh +++ b/src/arch/alpha/locked_mem.hh @@ -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); diff --git a/src/arch/mips/locked_mem.hh b/src/arch/mips/locked_mem.hh index 5b0f8a1b8..a5ff467b3 100644 --- a/src/arch/mips/locked_mem.hh +++ b/src/arch/mips/locked_mem.hh @@ -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);