Commit-ID: 3b6505fd8eb86e3ef5ce12b34fe81e9edeb84475 Gitweb: https://git.kernel.org/tip/3b6505fd8eb86e3ef5ce12b34fe81e9edeb84475 Author: Paul E. McKenney <paulmck@xxxxxxxxxxxxx> AuthorDate: Wed, 12 Dec 2018 07:20:07 -0800 Committer: Paul E. McKenney <paulmck@xxxxxxxxxxxxx> CommitDate: Fri, 25 Jan 2019 15:29:58 -0800 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@xxxxxxxxxxxxx> --- kernel/rcu/tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) {
![]() |