Fix small race in 44x tlbie function
Josh Boyer
jwboyer at linux.vnet.ibm.com
Thu Aug 9 00:49:59 EST 2007
On Tue, 7 Aug 2007 14:20:50 +1000
David Gibson <david at gibson.dropbear.id.au> wrote:
> The 440 family of processors don't have a tlbie instruction. So, we
> implement TLB invalidates by explicitly searching the TLB with tlbsx.,
> then clobbering the relevant entry, if any. Unfortunately the PID for
> the search needs to be stored in the MMUCR register, which is also
> used by the TLB miss handler. Interrupts were enabled in _tlbie(), so
> an interrupt between loading the MMUCR and the tlbsx could cause
> incorrect search results, and thus a failure to invalide TLB entries
> which needed to be invalidated.
>
> This patch fixes the problem in both arch/ppc and arch/powerpc by
> inhibiting interrupts (even critical and debug interrupts) across the
> relevant instructions.
>
> Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
Acked-by: Josh Boyer <jwboyer at linux.vnet.ibm.com>
And I agree this should go into 2.6.23.
josh
More information about the Linuxppc-dev
mailing list