]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
kvm tools: Add own barrier() definition
authorCyrill Gorcunov <gorcunov@openvz.org>
Tue, 8 May 2012 09:52:40 +0000 (13:52 +0400)
committerPekka Enberg <penberg@kernel.org>
Tue, 8 May 2012 12:31:07 +0000 (15:31 +0300)
Otherwise I'm getting the following compile problem on my Fedora
machine. The helper is rather taken from linux kernel.

 | [cyrill@moon kvm]$ make tags
 | x86/include/kvm/barrier.h:11:25: fatal error: asm/barrier.h: No such file or directory compilation terminated.

Acked-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
tools/kvm/x86/include/kvm/barrier.h

index f1a71281ada97f4bdda709bb8091ab41ffa46814..46d14f67b02786ba502d2f6da8ffab9dedddfbb5 100644 (file)
@@ -1,13 +1,20 @@
 #ifndef _KVM_BARRIER_H_
 #define _KVM_BARRIER_H_
 
-/*
- * asm/system.h cannot be #included standalone on 32-bit x86 yet.
- *
- * Provide the dependencies here - we can drop these wrappers once
- * the header is fixed upstream:
- */
-
-#include <asm/barrier.h>
+#define barrier() asm volatile("": : :"memory")
+
+#define mb()   asm volatile ("mfence": : :"memory")
+#define rmb()  asm volatile ("lfence": : :"memory")
+#define wmb()  asm volatile ("sfence": : :"memory")
+
+#ifdef CONFIG_SMP
+#define smp_mb()       mb()
+#define smp_rmb()      rmb()
+#define smp_wmb()      wmb()
+#else
+#define smp_mb()       barrier()
+#define smp_rmb()      barrier()
+#define smp_wmb()      barrier()
+#endif
 
 #endif /* _KVM_BARRIER_H_ */