rcu: Use WRITE_ONCE in RCU_INIT_POINTER
authorPeter Zijlstra <peterz@infradead.org>
Tue, 2 Jun 2015 15:26:48 +0000 (17:26 +0200)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Wed, 22 Jul 2015 22:27:27 +0000 (15:27 -0700)
For the paranoid amongst us GCC would be in its right to use byte stores
to write our NULL value, tell it not to do that.

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
include/linux/rcupdate.h

index def6d45ad61c02ef79adfb87d08efbb148976fbd..c63428c1ed8a785a06661ce3fbead937ad88d756 100644 (file)
@@ -995,7 +995,7 @@ static inline notrace void rcu_read_unlock_sched_notrace(void)
 #define RCU_INIT_POINTER(p, v) \
        do { \
                rcu_dereference_sparse(p, __rcu); \
-               p = RCU_INITIALIZER(v); \
+               WRITE_ONCE(p, RCU_INITIALIZER(v)); \
        } while (0)
 
 /**