summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGabe Black <gblack@eecs.umich.edu>2009-08-23 14:15:15 -0700
committerGabe Black <gblack@eecs.umich.edu>2009-08-23 14:15:15 -0700
commitce63e5036496334d8c9cad0879cd55002ed64955 (patch)
tree14a0cb53993f0284c965fa729755cc1f253a9c29
parentf6bb7ec4eb38cc61c32f4c6941e09deda23f979c (diff)
downloadgem5-ce63e5036496334d8c9cad0879cd55002ed64955.tar.xz
Atomic CPU: Respect the NO_ACCESS request flag.
-rw-r--r--src/cpu/simple/atomic.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/cpu/simple/atomic.cc b/src/cpu/simple/atomic.cc
index bab4b8b51..83da618f8 100644
--- a/src/cpu/simple/atomic.cc
+++ b/src/cpu/simple/atomic.cc
@@ -324,7 +324,7 @@ AtomicSimpleCPU::read(Addr addr, T &data, unsigned flags)
Fault fault = thread->dtb->translateAtomic(req, tc, BaseTLB::Read);
// Now do the access.
- if (fault == NoFault) {
+ if (fault == NoFault && !req->getFlags().isSet(Request::NO_ACCESS)) {
Packet pkt = Packet(req,
req->isLLSC() ? MemCmd::LoadLockedReq : MemCmd::ReadReq,
Packet::Broadcast);
@@ -481,7 +481,7 @@ AtomicSimpleCPU::write(T data, Addr addr, unsigned flags, uint64_t *res)
}
}
- if (do_access) {
+ if (do_access && !req->getFlags().isSet(Request::NO_ACCESS)) {
Packet pkt = Packet(req, cmd, Packet::Broadcast);
pkt.dataStatic(dataPtr);