From: Gabe Black Date: Sat, 1 Dec 2007 00:49:27 +0000 (-0800) Subject: SPARC: Fixes for invalidateAll and demapAll in the SPARC TLBs. X-Git-Tag: m5_2.0_beta5~69 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=7433032b39828ccff9ad5ed0e3ed95f752fc269a;p=gem5.git SPARC: Fixes for invalidateAll and demapAll in the SPARC TLBs. --HG-- extra : convert_revision : 8de6c60b0e3e725eac11047a9d9888097dd359ff --- 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)