summaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorAndreas Sandberg <Andreas.Sandberg@ARM.com>2013-01-07 13:05:45 -0500
committerAndreas Sandberg <Andreas.Sandberg@ARM.com>2013-01-07 13:05:45 -0500
commit0d59549cd9db2263b1cc1b90e8abd05229eaab5b (patch)
tree95ad1a686728f09d7eb95f1e9ba9883f45780be6 /src/arch
parent8db27aa230c40c21acf55fda3755ed173c34e47c (diff)
downloadgem5-0d59549cd9db2263b1cc1b90e8abd05229eaab5b.tar.xz
arm: Fix draining of the pagetable walker when squashing
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.
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/arm/table_walker.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/arch/arm/table_walker.cc b/src/arch/arm/table_walker.cc
index e4c6209d6..99a7592c1 100644
--- a/src/arch/arm/table_walker.cc
+++ b/src/arch/arm/table_walker.cc
@@ -225,6 +225,7 @@ TableWalker::processWalkWrapper()
// if we've still got pending translations schedule more work
nextWalk(tc);
currState = NULL;
+ completeDrain();
}
Fault