arm: Fix draining of the pagetable walker when squashing
authorAndreas Sandberg <Andreas.Sandberg@ARM.com>
Mon, 7 Jan 2013 18:05:45 +0000 (13:05 -0500)
committerAndreas Sandberg <Andreas.Sandberg@ARM.com>
Mon, 7 Jan 2013 18:05:45 +0000 (13:05 -0500)
Since the page table walker only checks if a drain has completed in
doL1DescriptorWrapper() and doL2DescriptorWrapper(), it sometimes
looses track of a drain request if there is a squash. This changeset
adds a completeDrain() call after squashing requests in the pending
queue, which fixes this issue.

src/arch/arm/table_walker.cc

index e4c6209d6eabe1a0c879a5f3da198c6769d47cce..99a7592c168674421220f58f9ed9506a90b188fd 100644 (file)
@@ -225,6 +225,7 @@ TableWalker::processWalkWrapper()
     // if we've still got pending translations schedule more work
     nextWalk(tc);
     currState = NULL;
+    completeDrain();
 }
 
 Fault