diff options
Diffstat (limited to 'include/linux/rcupdate.h')
-rw-r--r-- | include/linux/rcupdate.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h index 6cdb1db776cf..922bb6848813 100644 --- a/include/linux/rcupdate.h +++ b/include/linux/rcupdate.h | |||
@@ -878,9 +878,11 @@ static inline void rcu_head_init(struct rcu_head *rhp) | |||
878 | static inline bool | 878 | static inline bool |
879 | rcu_head_after_call_rcu(struct rcu_head *rhp, rcu_callback_t f) | 879 | rcu_head_after_call_rcu(struct rcu_head *rhp, rcu_callback_t f) |
880 | { | 880 | { |
881 | if (READ_ONCE(rhp->func) == f) | 881 | rcu_callback_t func = READ_ONCE(rhp->func); |
882 | |||
883 | if (func == f) | ||
882 | return true; | 884 | return true; |
883 | WARN_ON_ONCE(READ_ONCE(rhp->func) != (rcu_callback_t)~0L); | 885 | WARN_ON_ONCE(func != (rcu_callback_t)~0L); |
884 | return false; | 886 | return false; |
885 | } | 887 | } |
886 | 888 | ||