abstract_mem.cc (13954:2f400a5f2627) | abstract_mem.cc (13998:2feca2ebe67b) |
---|---|
1/* | 1/* |
2 * Copyright (c) 2010-2012,2017-2018 ARM Limited | 2 * Copyright (c) 2010-2012,2017-2019 ARM Limited |
3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 268 unchanged lines hidden (view full) --- 279 // reservation on this address (for other contextIds) and they must all 280 // be removed. 281 i = lockedAddrList.begin(); 282 while (i != lockedAddrList.end()) { 283 if (i->addr == paddr) { 284 DPRINTF(LLSC, "Erasing lock record: context %d addr %#x\n", 285 i->contextId, paddr); 286 ContextID owner_cid = i->contextId; | 3 * All rights reserved 4 * 5 * The license below extends only to copyright in the software and shall 6 * not be construed as granting a license to any other intellectual 7 * property including but not limited to intellectual property relating 8 * to a hardware implementation of the functionality of the software 9 * licensed hereunder. You may use the software subject to the license 10 * terms below provided that you ensure that this notice is replicated --- 268 unchanged lines hidden (view full) --- 279 // reservation on this address (for other contextIds) and they must all 280 // be removed. 281 i = lockedAddrList.begin(); 282 while (i != lockedAddrList.end()) { 283 if (i->addr == paddr) { 284 DPRINTF(LLSC, "Erasing lock record: context %d addr %#x\n", 285 i->contextId, paddr); 286 ContextID owner_cid = i->contextId; |
287 ContextID requester_cid = pkt->req->contextId(); | 287 assert(owner_cid != InvalidContextID); 288 ContextID requester_cid = req->hasContextId() ? 289 req->contextId() : 290 InvalidContextID; |
288 if (owner_cid != requester_cid) { 289 ThreadContext* ctx = system()->getThreadContext(owner_cid); 290 TheISA::globalClearExclusive(ctx); 291 } 292 i = lockedAddrList.erase(i); 293 } else { 294 i++; 295 } --- 166 unchanged lines hidden --- | 291 if (owner_cid != requester_cid) { 292 ThreadContext* ctx = system()->getThreadContext(owner_cid); 293 TheISA::globalClearExclusive(ctx); 294 } 295 i = lockedAddrList.erase(i); 296 } else { 297 i++; 298 } --- 166 unchanged lines hidden --- |