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 ---