hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/tools/include/asm/barrier.h
....@@ -1,4 +1,5 @@
11 /* SPDX-License-Identifier: GPL-2.0 */
2
+#include <linux/compiler.h>
23 #if defined(__i386__) || defined(__x86_64__)
34 #include "../../arch/x86/include/asm/barrier.h"
45 #elif defined(__arm__)
....@@ -23,6 +24,42 @@
2324 #include "../../arch/ia64/include/asm/barrier.h"
2425 #elif defined(__xtensa__)
2526 #include "../../arch/xtensa/include/asm/barrier.h"
27
+#elif defined(__nds32__)
28
+#include "../../arch/nds32/include/asm/barrier.h"
2629 #else
2730 #include <asm-generic/barrier.h>
2831 #endif
32
+
33
+/*
34
+ * Generic fallback smp_*() definitions for archs that haven't
35
+ * been updated yet.
36
+ */
37
+
38
+#ifndef smp_rmb
39
+# define smp_rmb() rmb()
40
+#endif
41
+
42
+#ifndef smp_wmb
43
+# define smp_wmb() wmb()
44
+#endif
45
+
46
+#ifndef smp_mb
47
+# define smp_mb() mb()
48
+#endif
49
+
50
+#ifndef smp_store_release
51
+# define smp_store_release(p, v) \
52
+do { \
53
+ smp_mb(); \
54
+ WRITE_ONCE(*p, v); \
55
+} while (0)
56
+#endif
57
+
58
+#ifndef smp_load_acquire
59
+# define smp_load_acquire(p) \
60
+({ \
61
+ typeof(*p) ___p1 = READ_ONCE(*p); \
62
+ smp_mb(); \
63
+ ___p1; \
64
+})
65
+#endif