diff options
Diffstat (limited to 'src/arch/x86/pagetable_walker.cc')
-rw-r--r-- | src/arch/x86/pagetable_walker.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/arch/x86/pagetable_walker.cc b/src/arch/x86/pagetable_walker.cc index cc2a5099d..81c4ccdb5 100644 --- a/src/arch/x86/pagetable_walker.cc +++ b/src/arch/x86/pagetable_walker.cc @@ -124,8 +124,10 @@ Walker::recvTimingResp(PacketPtr pkt) delete senderWalk; // Since we block requests when another is outstanding, we // need to check if there is a waiting request to be serviced - if (currStates.size()) - startWalkWrapper(); + if (currStates.size() && !startWalkWrapperEvent.scheduled()) + // delay sending any new requests until we are finished + // with the responses + schedule(startWalkWrapperEvent, clockEdge()); } return true; } |