From: James Hogan Date: Tue, 19 May 2015 08:50:36 +0000 (+0100) Subject: MIPS: dump_tlb: Take EHINV bit into account X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=decebccd76e4da9bb096962c230b6ed740606e49;p=GitHub%2Fmoto-9609%2Fandroid_kernel_motorola_exynos9610.git MIPS: dump_tlb: Take EHINV bit into account The EHINV bit in EntryHi allows a TLB entry to be properly marked invalid so that EntryHi doesn't have to be set to a unique value to avoid machine check exceptions due to multiple matching entries. Unfortunately dump_tlb() doesn't take this into account so it will print all the uninteresting invalid TLB entries if the current ASID happens to be 00. Therefore add a condition to skip entries which are marked invalid with the EHINV bit. Signed-off-by: James Hogan Cc: linux-mips@linux-mips.org Patchwork: https://patchwork.linux-mips.org/patch/10076/ Signed-off-by: Ralf Baechle --- diff --git a/arch/mips/lib/dump_tlb.c b/arch/mips/lib/dump_tlb.c index 995c393e3342..3bcdd53c832f 100644 --- a/arch/mips/lib/dump_tlb.c +++ b/arch/mips/lib/dump_tlb.c @@ -67,6 +67,9 @@ static void dump_tlb(int first, int last) entrylo0 = read_c0_entrylo0(); entrylo1 = read_c0_entrylo1(); + /* EHINV bit marks entire entry as invalid */ + if (cpu_has_tlbinv && entryhi & MIPS_ENTRYHI_EHINV) + continue; /* * Prior to tlbinv, unused entries have a virtual address of * CKSEG0.