657,660c657,664
< if (executed) {
< panic("Not supposed to re-execute with split mem ops!");
< fault = cpu->read(req, data, lqIdx);
< return fault;
---
> // Sometimes reads will get retried, so they may come through here
> // twice.
> if (!req) {
> req = new Request();
> req->setVirt(asid, addr, sizeof(T), flags, this->PC);
> req->setThreadContext(thread->readCpuId(), threadNumber);
> } else {
> assert(addr == req->getVaddr());
663,666d666
< req = new Request();
< req->setVirt(asid, addr, sizeof(T), flags, this->PC);
< req->setThreadContext(thread->readCpuId(), threadNumber);
<
717a718,719
> assert(req == NULL);
>