Module Name: src
Committed By: riastradh
Date: Sun Dec 19 10:47:19 UTC 2021
Modified Files:
src/sys/external/bsd/common/include/linux: rcupdate.h
Log Message:
Simplify rcu_* definitions with atomic_load/store_*.
To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 src/sys/external/bsd/common/include/linux/rcupdate.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/common/include/linux/rcupdate.h
diff -u src/sys/external/bsd/common/include/linux/rcupdate.h:1.3 src/sys/external/bsd/common/include/linux/rcupdate.h:1.4
--- src/sys/external/bsd/common/include/linux/rcupdate.h:1.3 Sun Dec 19 09:48:29 2021
+++ src/sys/external/bsd/common/include/linux/rcupdate.h Sun Dec 19 10:47:19 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: rcupdate.h,v 1.3 2021/12/19 09:48:29 riastradh Exp $ */
+/* $NetBSD: rcupdate.h,v 1.4 2021/12/19 10:47:19 riastradh Exp $ */
/*-
* Copyright (c) 2018 The NetBSD Foundation, Inc.
@@ -42,17 +42,9 @@
#define RCU_INIT_POINTER(P, V) ((P) = (V))
-#define rcu_assign_pointer(P, V) do { \
- __typeof__(*(P)) *__rcu_assign_pointer_tmp = (V); \
- membar_exit(); \
- (P) = __rcu_assign_pointer_tmp; \
-} while (0)
-
-#define rcu_dereference(P) ({ \
- __typeof__(*(P)) *__rcu_dereference_tmp = (P); \
- membar_datadep_consumer(); \
- __rcu_dereference_tmp; \
-})
+#define rcu_assign_pointer(P,V) atomic_store_release(&(P), (V))
+#define rcu_dereference(P) atomic_load_consume(&(P))
+#define rcu_access_pointer(P) atomic_load_relaxed(&(P))
#define rcu_dereference_raw rcu_dereference
@@ -61,11 +53,6 @@
(P); \
})
-#define rcu_access_pointer(P) ({ \
- __typeof__(*(P)) *__rcu_access_pointer_tmp = (P); \
- __insn_barrier(); \
- __rcu_access_pointer_tmp; \
-})
/* kill_dependency */
#define rcu_pointer_handoff(P) (P)