MIPS: mm: tlb-r4k: Uniquify TLB entries on init
authorJiaxun Yang <jiaxun.yang@flygoat.com>
Sat, 7 Jun 2025 12:43:56 +0000 (13:43 +0100)
committerThomas Bogendoerfer <tsbogend@alpha.franken.de>
Wed, 16 Jul 2025 18:01:07 +0000 (20:01 +0200)
commit35ad7e181541aa5757f9f316768d3e64403ec843
treed3891cd69ce8e308f64f4bb8e05a01e303a25b5a
parentb9ace0647f044042d88b30ea7bd5130e4ad626a2
MIPS: mm: tlb-r4k: Uniquify TLB entries on init

Hardware or bootloader will initialize TLB entries to any value, which
may collide with kernel's UNIQUE_ENTRYHI value. On MIPS microAptiv/M5150
family of cores this will trigger machine check exception and cause boot
failure. On M5150 simulation this could happen 7 times out of 1000 boots.

Replace local_flush_tlb_all() with r4k_tlb_uniquify() which probes each
TLB ENTRIHI unique value for collisions before it's written, and in case
of collision try a different ASID.

Cc: stable@kernel.org
Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
arch/mips/mm/tlb-r4k.c