From 7433032b39828ccff9ad5ed0e3ed95f752fc269a Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Fri, 30 Nov 2007 16:49:27 -0800 Subject: SPARC: Fixes for invalidateAll and demapAll in the SPARC TLBs. --HG-- extra : convert_revision : 8de6c60b0e3e725eac11047a9d9888097dd359ff --- src/arch/sparc/tlb.cc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/arch/sparc/tlb.cc b/src/arch/sparc/tlb.cc index 52791e12a..c0ad75c6e 100644 --- a/src/arch/sparc/tlb.cc +++ b/src/arch/sparc/tlb.cc @@ -331,10 +331,9 @@ TLB::demapAll(int partition_id) DPRINTF(TLB, "TLB: Demapping All pid=%#d\n", partition_id); cacheValid = false; for (x = 0; x < size; x++) { - if (!tlb[x].pte.locked() && tlb[x].range.partitionId == partition_id) { - if (tlb[x].valid == true){ - freeList.push_front(&tlb[x]); - } + if (tlb[x].valid && !tlb[x].pte.locked() && + tlb[x].range.partitionId == partition_id) { + freeList.push_front(&tlb[x]); tlb[x].valid = false; if (tlb[x].used) { tlb[x].used = false; @@ -351,7 +350,6 @@ TLB::invalidateAll() int x; cacheValid = false; - freeList.clear(); lookupTable.clear(); for (x = 0; x < size; x++) { if (tlb[x].valid == true) -- cgit v1.2.3