[PATCH 1/1] powerpc: add "memory" attribute for mfmsr()
Benjamin Herrenschmidt
benh at kernel.crashing.org
Tue Jul 10 18:19:58 EST 2012
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.chen at 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")
More information about the Linuxppc-dev
mailing list