[PATCH v2 07/11] powerpc/8xx: macro for handling CPU15 errata

David Laight David.Laight at ACULAB.COM
Tue Jan 20 22:09:08 AEDT 2015


From Christophe Leroy
> Having a macro will help keep clear code.

It might remove an #if but it doesn't really help.
All it means is that anyone reading the code has to hunt for
the definition before proceeding.

Some comment about what (and why) the extra code is needed
might help.

...
> +
> +#ifdef CONFIG_8xx_CPU15
> +#define DO_8xx_CPU15(tmp, addr)	\
> +	addi	tmp, addr, PAGE_SIZE;	\
> +	tlbie	tmp;			\
> +	addi	tmp, addr, PAGE_SIZE;	\

You've even transcribed this incorrectly.

Clearly not tested :-)

	David

> +	tlbie	tmp
> +#else
> +#define DO_8xx_CPU15(tmp, addr)
> +#endif
> +
>  InstructionTLBMiss:
>  #ifdef CONFIG_8xx_CPU6
>  	mtspr	SPRN_DAR, r3
> @@ -304,12 +315,7 @@ InstructionTLBMiss:
>  	EXCEPTION_PROLOG_0
>  	mtspr	SPRN_SPRG_SCRATCH2, r10
>  	mfspr	r10, SPRN_SRR0	/* Get effective address of fault */
> -#ifdef CONFIG_8xx_CPU15
> -	addi	r11, r10, PAGE_SIZE
> -	tlbie	r11
> -	addi	r11, r10, -PAGE_SIZE
> -	tlbie	r11
> -#endif
> +	DO_8xx_CPU15(r11, r10)
> 
>  	/* If we are faulting a kernel address, we have to use the
>  	 * kernel page tables.
> --
> 2.1.0
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev


More information about the Linuxppc-dev mailing list