new file mode 100644
@@ -0,0 +1,13 @@
+#ifndef _ASM_X86_BARRIER_H_
+#define _ASM_X86_BARRIER_H_
+/*
+ * Copyright (C) 2016, Red Hat Inc, Alexander Gordeev <agordeev@redhat.com>
+ *
+ * This work is licensed under the terms of the GNU LGPL, version 2.
+ */
+
+#define mb() asm volatile("mfence":::"memory")
+#define rmb() asm volatile("lfence":::"memory")
+#define wmb() asm volatile("sfence":::"memory")
+
+#endif
@@ -2,10 +2,6 @@
#define __SMP_H
#include <asm/spinlock.h>
-#define mb() asm volatile("mfence":::"memory")
-#define rmb() asm volatile("lfence":::"memory")
-#define wmb() asm volatile("sfence" ::: "memory")
-
void smp_init(void);
int cpu_count(void);
@@ -8,6 +8,7 @@
#include "smp.h"
#include "atomic.h"
#include "hyperv.h"
+#include "asm/barrier.h"
#define MAX_CPUS 4
@@ -3,6 +3,7 @@
#include "atomic.h"
#include "processor.h"
#include "kvmclock.h"
+#include "asm/barrier.h"
#define unlikely(x) __builtin_expect(!!(x), 0)
#define likely(x) __builtin_expect(!!(x), 1)