diff options
author | 2018-12-12 07:20:07 -0800 | |
---|---|---|
committer | 2019-01-25 15:29:58 -0800 | |
commit | 3b6505fd8eb86e3ef5ce12b34fe81e9edeb84475 (patch) | |
tree | df923187ad7bac0b1abbb78ae6983693bf99c074 | |
parent | rcu: Improve diagnostics for failed RCU grace-period start (diff) | |
download | linux-3b6505fd8eb86e3ef5ce12b34fe81e9edeb84475.tar.gz linux-3b6505fd8eb86e3ef5ce12b34fe81e9edeb84475.tar.bz2 linux-3b6505fd8eb86e3ef5ce12b34fe81e9edeb84475.zip |
rcu: Protect rcu_check_gp_kthread_starvation() access to ->gp_flags
The rcu_check_gp_kthread_starvation() function can be invoked without
holding locks, so the access to the rcu_state structure's ->gp_flags
field must be protected with READ_ONCE(). This commit therefore adds
this protection.
Signed-off-by: Paul E. McKenney <paulmck@linux.ibm.com>
-rw-r--r-- | kernel/rcu/tree.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c index 8543a90d53f2..238150684fed 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c @@ -1192,7 +1192,7 @@ static void rcu_check_gp_kthread_starvation(void) pr_err("%s kthread starved for %ld jiffies! g%ld f%#x %s(%d) ->state=%#lx ->cpu=%d\n", rcu_state.name, j, (long)rcu_seq_current(&rcu_state.gp_seq), - rcu_state.gp_flags, + READ_ONCE(rcu_state.gp_flags), gp_state_getname(rcu_state.gp_state), rcu_state.gp_state, gpk ? gpk->state : ~0, gpk ? task_cpu(gpk) : -1); if (gpk) { |