diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mem/abstract_mem.cc | 7 | ||||
-rw-r--r-- | src/mem/abstract_mem.hh | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/mem/abstract_mem.cc b/src/mem/abstract_mem.cc index a998530fd..6870ba38f 100644 --- a/src/mem/abstract_mem.cc +++ b/src/mem/abstract_mem.cc @@ -1,5 +1,5 @@ /* - * Copyright (c) 2010-2012,2017-2018 ARM Limited + * Copyright (c) 2010-2012,2017-2019 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -284,7 +284,10 @@ AbstractMemory::checkLockedAddrList(PacketPtr pkt) DPRINTF(LLSC, "Erasing lock record: context %d addr %#x\n", i->contextId, paddr); ContextID owner_cid = i->contextId; - ContextID requester_cid = pkt->req->contextId(); + assert(owner_cid != InvalidContextID); + ContextID requester_cid = req->hasContextId() ? + req->contextId() : + InvalidContextID; if (owner_cid != requester_cid) { ThreadContext* ctx = system()->getThreadContext(owner_cid); TheISA::globalClearExclusive(ctx); diff --git a/src/mem/abstract_mem.hh b/src/mem/abstract_mem.hh index 18d8ee909..8b944b981 100644 --- a/src/mem/abstract_mem.hh +++ b/src/mem/abstract_mem.hh @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012 ARM Limited + * Copyright (c) 2012, 2019 ARM Limited * All rights reserved * * The license below extends only to copyright in the software and shall @@ -83,6 +83,8 @@ class LockedAddr { // check for matching execution context bool matchesContext(const RequestPtr &req) const { + assert(contextId != InvalidContextID); + assert(req->hasContextId()); return (contextId == req->contextId()); } |