[syslinux:lwip] sys/cpu.h: add barriers

syslinux-bot for H. Peter Anvin hpa at zytor.com
Fri Mar 30 14:54:05 PDT 2012


Commit-ID:  c35c76ea485bf0c12812de252733e7b1c3deab1e
Gitweb:     http://www.syslinux.org/commit/c35c76ea485bf0c12812de252733e7b1c3deab1e
Author:     H. Peter Anvin <hpa at zytor.com>
AuthorDate: Tue, 27 Mar 2012 23:01:49 -0700
Committer:  H. Peter Anvin <hpa at zytor.com>
CommitDate: Tue, 27 Mar 2012 23:01:49 -0700

sys/cpu.h: add barriers

Add compiler barriers around instructions that muck with the interrupt
state and so on.

Signed-off-by: H. Peter Anvin <hpa at zytor.com>

---
 com32/include/sys/cpu.h |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/com32/include/sys/cpu.h b/com32/include/sys/cpu.h
index 695ff29..807e13c 100644
--- a/com32/include/sys/cpu.h
+++ b/com32/include/sys/cpu.h
@@ -121,22 +121,22 @@ static inline void wrmsr(uint64_t v, uint32_t msr)
 
 static inline void cpu_relax(void)
 {
-    asm volatile("rep ; nop");
+    asm volatile("rep ; nop" : : : "memory");
 }
 
 static inline void hlt(void)
 {
-    asm volatile("hlt");
+    asm volatile("hlt" : : : "memory");
 }
 
 static inline void cli(void)
 {
-    asm volatile("cli");
+    asm volatile("cli" : : : "memory");
 }
 
 static inline void sti(void)
 {
-    asm volatile("sti");
+    asm volatile("sti" : : : "memory");
 }
 
 typedef unsigned long irq_state_t;
@@ -145,7 +145,7 @@ static inline irq_state_t irq_state(void)
 {
     irq_state_t __st;
 
-    asm volatile("pushfl ; popl %0" : "=rm" (__st));
+    asm volatile("pushfl ; popl %0" : "=rm" (__st) : : "memory");
     return __st;
 }
 
@@ -158,7 +158,7 @@ static inline irq_state_t irq_save(void)
 
 static inline void irq_restore(irq_state_t __st)
 {
-    asm volatile("pushl %0 ; popfl" : : "rm" (__st));
+    asm volatile("pushl %0 ; popfl" : : "rm" (__st) : "memory");
 }
 
 


More information about the Syslinux-commits mailing list