From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: In-Reply-To: <20070807042050.GJ13522@localhost.localdomain> References: <20070807042050.GJ13522@localhost.localdomain> Mime-Version: 1.0 (Apple Message framework v752.2) Content-Type: text/plain; charset=US-ASCII; format=flowed Message-Id: From: Kumar Gala Subject: Re: Fix small race in 44x tlbie function Date: Wed, 8 Aug 2007 10:20:45 -0500 To: David Gibson Cc: linuxppc-dev@ozlabs.org, Paul Mackerras , Todd Inglett , Volkmar Uhlig List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 > --- > Paul, this one's a bugfix, which I think should go into 2.6.23. Did you actually see this happen? - k