On Tue, 2012-07-10 at 15:59 +0800, Tiejun Chen wrote:
> Add "memory" attribute in inline assembly language as a compiler
> barrier to make sure 4.6.x GCC don't reorder mfmsr().

Out of curiosity, did you see a case where it was re-ordered
improperly ?

Cheers,
Ben.

> Signed-off-by: Tiejun Chen <tiejun.c...@windriver.com>
> ---
>  arch/powerpc/include/asm/reg.h |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
> index 559da19..578e5a0 100644
> --- a/arch/powerpc/include/asm/reg.h
> +++ b/arch/powerpc/include/asm/reg.h
> @@ -1016,7 +1016,8 @@
>  /* Macros for setting and retrieving special purpose registers */
>  #ifndef __ASSEMBLY__
>  #define mfmsr()              ({unsigned long rval; \
> -                     asm volatile("mfmsr %0" : "=r" (rval)); rval;})
> +                     asm volatile("mfmsr %0" : "=r" (rval) : \
> +                                             : "memory"); rval;})
>  #ifdef CONFIG_PPC_BOOK3S_64
>  #define __mtmsrd(v, l)       asm volatile("mtmsrd %0," __stringify(l) \
>                                    : : "r" (v) : "memory")


_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to