Subject: [PATCH v5 2/6] irqchip, gicv3: Workaround for Cavium ThunderX erratum 23154

From: [email-masked] (Marc Zyngier)
Date: Tue, 22 Sep 2015 17:50:40 +0100

On Mon, 21 Sep 2015 22:58:35 +0200
Robert Richter <[email-masked]> wrote:

> From: Robert Richter <[email-masked]>
> 
> This patch implements Cavium ThunderX erratum 23154.
> 
> The gicv3 of ThunderX requires a modified version for reading the IAR
> status to ensure data synchronization. Since this is in the fast-path
> and called with each interrupt, runtime patching is used using jump
> label patching for smallest overhead (no-op). This is the same
> technique as used for tracepoints.
> 
> v5:
>  * fixed calling gic_read_iar_cavium_thunderx() if jump label is
>    enabled
>  * made is_cavium_thunderx static
>  * removed ARCH_THUNDER dependency for Cavium errata options to
>    make it available for generic kernels
> 
> v4:
>  * simplify code to only use cpus_have_cap() in gicv3_enable_quirks()
> 
> v3:
>  * fix erratum to be dependend from midr
>  * use arm64 errata framework
> 
> v2:
>  * implement code in a single asm() to keep instruction sequence
>  * added comment to the code that explains the erratum
>  * apply workaround also if running as guest, thus check MIDR
> 
> Signed-off-by: Robert Richter <[email-masked]>

Reviewed-by: Marc Zyngier <[email-masked]>

	M.
-- 
Jazz is not dead. It just smells funny.