ppc: Fix tlb invalidations on 6xx/7xx/7xxx 32-bit processors
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 7 Jun 2016 02:50:21 +0000 (12:50 +1000)
committerDavid Gibson <david@gibson.dropbear.id.au>
Tue, 7 Jun 2016 03:10:44 +0000 (13:10 +1000)
commit3dcfb74fd4e4ab31508c80e6965a0cd477510234
treea606efc70522b2336c3eef8310459ed2109ac6ca
parentf5d9c1089f0136c2aadf51389e93a94d517e430f
ppc: Fix tlb invalidations on 6xx/7xx/7xxx 32-bit processors

The processor only uses some bits of the address and invalidates an
entire congruence class. Some OSes such as Darwin and HelenOS take
advantage of this and occasionally invalidate the entire TLB by just
doing a series of 64 consecutive tlbie for example.

Our code tries to be too smart here only invalidating a segment
congruence class (ie, allowing more address bits to be relevant
in the invalidation), this fails miserably on those OSes.

Instead don't bother, do like ppc64 and blow the whole tlb when tlbie
is executed.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
target-ppc/mmu_helper.c