Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

MIPS: mm: Suppress TLB uniquification on EHINV hardware

Hardware that supports the EHINV feature, mandatory for R6 ISA and FTLB
implementation, lets software mark TLB entries invalid, which eliminates
the need to ensure no duplicate matching entries are ever created. This
feature is already used by local_flush_tlb_all(), via the UNIQUE_ENTRYHI
macro, making the preceding call to r4k_tlb_uniquify() superfluous.

The next change will also modify uniquification code such that it'll
become incompatible with the FTLB and MMID features, as well as MIPSr6
CPUs that do not implement 4KiB pages.

Therefore prevent r4k_tlb_uniquify() from being used on EHINV hardware,
as denoted by `cpu_has_tlbinv'.

Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>

authored by

Maciej W. Rozycki and committed by
Thomas Bogendoerfer
74283cfe 8374c2cb

+2 -1
+2 -1
arch/mips/mm/tlb-r4k.c
··· 640 640 temp_tlb_entry = current_cpu_data.tlbsize - 1; 641 641 642 642 /* From this point on the ARC firmware is dead. */ 643 - r4k_tlb_uniquify(); 643 + if (!cpu_has_tlbinv) 644 + r4k_tlb_uniquify(); 644 645 local_flush_tlb_all(); 645 646 646 647 /* Did I tell you that ARC SUCKS? */