aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/rcu/tree_plugin.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
index 6d07fb402e84..5053dae4454e 100644
--- a/kernel/rcu/tree_plugin.h
+++ b/kernel/rcu/tree_plugin.h
@@ -2586,9 +2586,13 @@ static void rcu_spawn_one_nocb_kthread(struct rcu_state *rsp, int cpu)
2586 rdp->nocb_leader = rdp_spawn; 2586 rdp->nocb_leader = rdp_spawn;
2587 if (rdp_last && rdp != rdp_spawn) 2587 if (rdp_last && rdp != rdp_spawn)
2588 rdp_last->nocb_next_follower = rdp; 2588 rdp_last->nocb_next_follower = rdp;
2589 rdp_last = rdp; 2589 if (rdp == rdp_spawn) {
2590 rdp = rdp->nocb_next_follower; 2590 rdp = rdp->nocb_next_follower;
2591 rdp_last->nocb_next_follower = NULL; 2591 } else {
2592 rdp_last = rdp;
2593 rdp = rdp->nocb_next_follower;
2594 rdp_last->nocb_next_follower = NULL;
2595 }
2592 } while (rdp); 2596 } while (rdp);
2593 rdp_spawn->nocb_next_follower = rdp_old_leader; 2597 rdp_spawn->nocb_next_follower = rdp_old_leader;
2594 } 2598 }