From a5feaa6a69c28f2ab12e28d47fd4bd62359b07c7 Mon Sep 17 00:00:00 2001 From: "Timothy M. Jones" Date: Sat, 20 Feb 2010 20:11:58 +0000 Subject: [PATCH] BaseDynInst: Preserve the faults returned from read and write. When implementing timing address translations instead of atomic, I forgot to preserve the faults that are returned from the read and write calls. This patch reinstates them. --- src/cpu/base_dyn_inst.hh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/cpu/base_dyn_inst.hh b/src/cpu/base_dyn_inst.hh index 65578379b..a9ba12958 100644 --- a/src/cpu/base_dyn_inst.hh +++ b/src/cpu/base_dyn_inst.hh @@ -887,7 +887,7 @@ BaseDynInst::read(Addr addr, T &data, unsigned flags) if (fault == NoFault) { effAddr = req->getVaddr(); effAddrValid = true; - cpu->read(req, sreqLow, sreqHigh, data, lqIdx); + fault = cpu->read(req, sreqLow, sreqHigh, data, lqIdx); } else { // Return a fixed value to keep simulation deterministic even @@ -933,7 +933,7 @@ BaseDynInst::write(T data, Addr addr, unsigned flags, uint64_t *res) if (fault == NoFault) { effAddr = req->getVaddr(); effAddrValid = true; - cpu->write(req, sreqLow, sreqHigh, data, sqIdx); + fault = cpu->write(req, sreqLow, sreqHigh, data, sqIdx); } return fault;