[PATCH v2 1/4] powerpc: Introduce local (non-broadcast) forms	of tlb invalidates
    Scott Wood 
    scottwood at freescale.com
       
    Thu Sep  4 02:12:51 EST 2008
    
    
  
On Fri, Aug 29, 2008 at 08:56:50AM -0500, Kumar Gala wrote:
> +_GLOBAL(_tlbil_all)
> +#define MMUCSR0_TLBFI	(MMUCSR0_TLB0FI | MMUCSR0_TLB1FI | \
> +			 MMUCSR0_TLB2FI | MMUCSR0_TLB3FI)
> +	li	r3,(MMUCSR0_TLBFI)@l
> +	mtspr	SPRN_MMUCSR0, r3
> +1:
> +	mfspr	r3,SPRN_MMUCSR0
> +	andi.	r3,r3,MMUCSR0_TLBFI at l
> +	bne	1b
> +	blr
> +
> +/*
> + * Flush MMU TLB for a particular process id, but only on the local processor
> + * (no broadcast)
> + */
> +_GLOBAL(_tlbil_pid)
> +	li	r3,(MMUCSR0_TLBFI)@l
> +	mtspr	SPRN_MMUCSR0, r3
> +1:
> +	mfspr	r3,SPRN_MMUCSR0
> +	andi.	r1,r2,MMUCSR0_TLBFI at l
> +	bne	1b
> +	blr
I'm guessing _tlbil_pid is never called, as it will clobber the stack
pointer.
Should probably just point both function names at the same implementation,
since PID-specific invalidation isn't supported on non-tlbilx cores.
-Scott
    
    
More information about the Linuxppc-dev
mailing list