[PATCH 2/2] irqchip/gic-v3: Use nops macro for Cavium ThunderX erratum 23154

Mark Rutland mark.rutland at arm.com
Fri Oct 28 08:10:19 PDT 2016


On Fri, Oct 28, 2016 at 12:23:58PM +0100, Will Deacon wrote:
> The workaround for Cavium ThunderX erratum 23154 has a homebrew
> pipeflush built out of NOP sequences around the read of the IAR.
> 
> This patch converts the code to use the new nops macro, which makes it
> a little easier to read.
> 
> Cc: Marc Zyngier <marc.zyngier at arm.com>
> Signed-off-by: Will Deacon <will.deacon at arm.com>

Reviewed-by: Mark Rutland <mark.rutland at arm.com>

(yes, I counted them)

Thanks,
Mark.

> ---
>  arch/arm64/include/asm/arch_gicv3.h | 9 ++-------
>  1 file changed, 2 insertions(+), 7 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/arch_gicv3.h b/arch/arm64/include/asm/arch_gicv3.h
> index fdf34f8b4ee0..0313670a3e3f 100644
> --- a/arch/arm64/include/asm/arch_gicv3.h
> +++ b/arch/arm64/include/asm/arch_gicv3.h
> @@ -122,14 +122,9 @@ static inline u64 gic_read_iar_cavium_thunderx(void)
>  {
>  	u64 irqstat;
>  
> -	asm volatile(
> -		"nop;nop;nop;nop\n\t"
> -		"nop;nop;nop;nop");
> -
> +	nops(8);
>  	irqstat = read_sysreg_s(ICC_IAR1_EL1);
> -
> -	asm volatile(
> -		"nop;nop;nop;nop");
> +	nops(4);
>  	mb();
>  
>  	return irqstat;
> -- 
> 2.1.4
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 



More information about the linux-arm-kernel mailing list