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