diff --git a/src/arch/arm/table_walker.cc b/src/arch/arm/table_walker.cc index f94e7652ef..c7b8c3c0c3 100644 --- a/src/arch/arm/table_walker.cc +++ b/src/arch/arm/table_walker.cc @@ -533,7 +533,8 @@ TableWalker::processWalkWrapper() unsigned num_squashed = 0; ThreadContext *tc = currState->tc; while ((num_squashed < numSquashable) && currState && - (currState->transState->squashed() || te)) { + (currState->transState->squashed() || + (te && !te->partial))) { pendingQueue.pop_front(); num_squashed++; stats.squashedBefore++;