From 016f98afd050f876845c49d3a0ad6dd0c30c5681 Mon Sep 17 00:00:00 2001 From: Will Deacon Date: Fri, 28 Oct 2016 12:23:58 +0100 Subject: [PATCH] irqchip/gic-v3: Use nops macro for Cavium ThunderX erratum 23154 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. Reviewed-by: Mark Rutland Signed-off-by: Will Deacon Signed-off-by: Marc Zyngier --- 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 fdf34f8b..0313670 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.7.4