diff options
Diffstat (limited to 'src/mem')
-rw-r--r-- | src/mem/cache/blk.hh | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mem/cache/blk.hh b/src/mem/cache/blk.hh index 6682dd4bb..39d45d6e1 100644 --- a/src/mem/cache/blk.hh +++ b/src/mem/cache/blk.hh @@ -347,15 +347,16 @@ class CacheBlk bool success = false; auto l = lockList.begin(); - while (l != lockList.end() && !success) { + while (!success && l != lockList.end()) { if (l->matches(pkt->req)) { // it's a store conditional, and as far as the // memory system can tell, the requesting // context's lock is still valid. success = true; lockList.erase(l); + } else { + ++l; } - ++l; } req->setExtraData(success ? 1 : 0); |