Fix small race in 44x tlbie function
Volkmar Uhlig
vuhlig at us.ibm.com
Thu Aug 9 01:34:09 EST 2007
> -----Original Message-----
> From: galak at kernel.crashing.org [mailto:galak at kernel.crashing.org]
> Sent: Wednesday, August 08, 2007 11:21 AM
> To: david at gibson.dropbear.id.au
> Cc: paulus at samba.org; linuxppc-dev at ozlabs.org; Todd Inglett;
> Volkmar Uhlig
> Subject: Re: Fix small race in 44x tlbie function
>
>
> On Aug 6, 2007, at 11:20 PM, David Gibson 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>
> > ---
> > Paul, this one's a bugfix, which I think should go into 2.6.23.
>
> Did you actually see this happen?
Yes! (I guess you didn't get the initial mail...)
- Volkmar
More information about the Linuxppc-dev
mailing list