MIPS: tlb-r3k: Also invalidate wired TLB entries on boot
authorMaciej W. Rozycki <macro@linux-mips.org>
Wed, 27 May 2015 13:15:08 +0000 (14:15 +0100)
committerRalf Baechle <ralf@linux-mips.org>
Sun, 21 Jun 2015 19:52:39 +0000 (21:52 +0200)
commitdbfbf60f4a6b058b873b0d37e272fc3bd2f1356d
treee869b4b640ffbd026fe29c1be421d9cd83891d39
parent24ca1d9896bb9bbd7625e3596bac4ea2fe74c725
MIPS: tlb-r3k: Also invalidate wired TLB entries on boot

Most R3k processor implementations have their 8 first TLB entries fixed
as wired, so we always skip them in TLB invalidation.  That however
means any leftover entries present there at boot will stay throughout
the life of the kernel, unless replaced with new ones.

So rename `local_flush_tlb_all' to `local_flush_tlb_from' and make it
accept the TLB entry to start from.  Then use 0 initially at bootstrap,
and the first regular entry later on, bypassing any wired entries.
Wrap the latter arrangement into a new `local_flush_tlb_all' entry
point.

There is no need to disable interrupts in the call made from `tlb_init'
because it's made before the interrupt subsystem has been initialised;
this is also true for secondary processors, should we ever support R3k
SMP.  So move this piece of code to new `local_flush_tlb_all'.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/10194/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/mm/tlb-r3k.c