rcu: Protect rcu_boost() lockless accesses with ACCESS_ONCE()
This commit prevents random compiler optimizations by applying ACCESS_ONCE() to lockless accesses. Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
@@ -1127,7 +1127,8 @@ static int rcu_boost(struct rcu_node *rnp)
|
|||||||
struct task_struct *t;
|
struct task_struct *t;
|
||||||
struct list_head *tb;
|
struct list_head *tb;
|
||||||
|
|
||||||
if (rnp->exp_tasks == NULL && rnp->boost_tasks == NULL)
|
if (ACCESS_ONCE(rnp->exp_tasks) == NULL &&
|
||||||
|
ACCESS_ONCE(rnp->boost_tasks) == NULL)
|
||||||
return 0; /* Nothing left to boost. */
|
return 0; /* Nothing left to boost. */
|
||||||
|
|
||||||
raw_spin_lock_irqsave(&rnp->lock, flags);
|
raw_spin_lock_irqsave(&rnp->lock, flags);
|
||||||
|
Reference in New Issue
Block a user