[PATCH] ARC: Memory barriers for everyone!

Jose Abreu Jose.Abreu at synopsys.com
Thu Oct 12 08:49:17 PDT 2017


Hi Vineet,

Ping!

On 13-09-2017 12:24, Jose Abreu wrote:
> By default __iormb() and __iowmb() translate into a do { } while(0) for
> AXS10x platform. As ARC700 supports the sync op we can use the standard
> memory barriers that are supplied by asm-generic headers.
>
> Signed-off-by: Jose Abreu <joabreu at synopsys.com>
> Cc: Vineet Gupta <vgupta at synopsys.com>
> Cc: Alexey Brodkin <abrodkin at synopsys.com>
> Cc: Joao Pinto <jpinto at synopsys.com>
> ---
> Hi Vineet,
>
> This is the final patch for the series which should fix all the stacktracing
> mechanism for Bus Error messages. In this one we force memory barriers for
> all IO operations which will prevent op reordering by gcc and which will
> *really* correct blink and eret regs to show where exactly the error happened.
>
> With this fix I get a correct stacktrace upon a readl() from a non-existent
> register which causes a Bus Error. Without this, I would get non-correct
> blink and eret addresses because the ld operation would launch a bus error
> way after we performed readl().
>
> I am sending this but I'm not exactly sure if all platforms support
> the sync op. Could you confirm this?
>
> Best regards,
> Jose Miguel Abreu
> ---
>  arch/arc/include/asm/io.h | 7 +------
>  1 file changed, 1 insertion(+), 6 deletions(-)
>
> diff --git a/arch/arc/include/asm/io.h b/arch/arc/include/asm/io.h
> index c22b181..712defd 100644
> --- a/arch/arc/include/asm/io.h
> +++ b/arch/arc/include/asm/io.h
> @@ -12,15 +12,10 @@
>  #include <linux/types.h>
>  #include <asm/byteorder.h>
>  #include <asm/page.h>
> -
> -#ifdef CONFIG_ISA_ARCV2
>  #include <asm/barrier.h>
> +
>  #define __iormb()		rmb()
>  #define __iowmb()		wmb()
> -#else
> -#define __iormb()		do { } while (0)
> -#define __iowmb()		do { } while (0)
> -#endif
>  
>  extern void __iomem *ioremap(phys_addr_t paddr, unsigned long size);
>  extern void __iomem *ioremap_prot(phys_addr_t paddr, unsigned long size,




More information about the linux-snps-arc mailing list