diff options
author | Mark Salter <msalter@redhat.com> | 2013-04-09 21:35:46 +0200 |
---|---|---|
committer | Mark Salter <msalter@redhat.com> | 2013-04-09 21:35:46 +0200 |
commit | f934af05cb1bf20558542185299394a69060b829 (patch) | |
tree | c1d2c18ae43895bcec30e25411b2c2e5bf2dbe5e /arch | |
parent | Linux 3.9-rc6 (diff) | |
download | linux-f934af05cb1bf20558542185299394a69060b829.tar.xz linux-f934af05cb1bf20558542185299394a69060b829.zip |
add memory barrier to arch_local_irq_restore
arch_local_irq_save() and friends are required to act as compiler
memory barriers. This patch adds a "memory" clobber to the inline
asm code in arch_local_irq_restore() which is used as the building
block for other functions needing to set/clear the interrupt enable
in the CSR register.
Signed-off-by: Mark Salter <msalter@redhat.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/c6x/include/asm/irqflags.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/c6x/include/asm/irqflags.h b/arch/c6x/include/asm/irqflags.h index cf78e09e18c3..2c71d5634ec2 100644 --- a/arch/c6x/include/asm/irqflags.h +++ b/arch/c6x/include/asm/irqflags.h @@ -27,7 +27,7 @@ static inline unsigned long arch_local_save_flags(void) /* set interrupt enabled status */ static inline void arch_local_irq_restore(unsigned long flags) { - asm volatile (" mvc .s2 %0,CSR\n" : : "b"(flags)); + asm volatile (" mvc .s2 %0,CSR\n" : : "b"(flags) : "memory"); } /* unconditionally enable interrupts */ |