diff -r f9643f2771bc -r 0c3b36b3e812 src/mem/simple_dram.cc --- a/src/mem/simple_dram.cc Tue Feb 19 14:43:35 2013 +0000 +++ b/src/mem/simple_dram.cc Tue Feb 19 14:44:19 2013 +0000 @@ -396,8 +396,11 @@ } // Once you're done emptying the write queue, check if there's - // anything in the read queue, and call schedule if required - schedule(nextReqEvent, busBusyUntil); + // anything in the read queue, and call schedule if required. The + // retry above could already have caused it to be scheduled, so + // first check + if (!nextReqEvent.scheduled()) + schedule(nextReqEvent, busBusyUntil); } void