aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/rcu/tree.c2
-rw-r--r--kernel/rcu/tree.h12
2 files changed, 10 insertions, 4 deletions
diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
index a2503ef1bbe2..ee218d743226 100644
--- a/kernel/rcu/tree.c
+++ b/kernel/rcu/tree.c
@@ -1891,6 +1891,7 @@ static bool rcu_gp_init(struct rcu_state *rsp)
1891 * for subsequent online CPUs, and that quiescent-state forcing 1891 * for subsequent online CPUs, and that quiescent-state forcing
1892 * will handle subsequent offline CPUs. 1892 * will handle subsequent offline CPUs.
1893 */ 1893 */
1894 rsp->gp_state = RCU_GP_ONOFF;
1894 rcu_for_each_leaf_node(rsp, rnp) { 1895 rcu_for_each_leaf_node(rsp, rnp) {
1895 spin_lock(&rsp->ofl_lock); 1896 spin_lock(&rsp->ofl_lock);
1896 raw_spin_lock_irq_rcu_node(rnp); 1897 raw_spin_lock_irq_rcu_node(rnp);
@@ -1950,6 +1951,7 @@ static bool rcu_gp_init(struct rcu_state *rsp)
1950 * The grace period cannot complete until the initialization 1951 * The grace period cannot complete until the initialization
1951 * process finishes, because this kthread handles both. 1952 * process finishes, because this kthread handles both.
1952 */ 1953 */
1954 rsp->gp_state = RCU_GP_INIT;
1953 rcu_for_each_node_breadth_first(rsp, rnp) { 1955 rcu_for_each_node_breadth_first(rsp, rnp) {
1954 rcu_gp_slow(rsp, gp_init_delay); 1956 rcu_gp_slow(rsp, gp_init_delay);
1955 raw_spin_lock_irqsave_rcu_node(rnp, flags); 1957 raw_spin_lock_irqsave_rcu_node(rnp, flags);
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
index f52bc059bfec..8077aff7ab40 100644
--- a/kernel/rcu/tree.h
+++ b/kernel/rcu/tree.h
@@ -380,16 +380,20 @@ struct rcu_state {
380#define RCU_GP_IDLE 0 /* Initial state and no GP in progress. */ 380#define RCU_GP_IDLE 0 /* Initial state and no GP in progress. */
381#define RCU_GP_WAIT_GPS 1 /* Wait for grace-period start. */ 381#define RCU_GP_WAIT_GPS 1 /* Wait for grace-period start. */
382#define RCU_GP_DONE_GPS 2 /* Wait done for grace-period start. */ 382#define RCU_GP_DONE_GPS 2 /* Wait done for grace-period start. */
383#define RCU_GP_WAIT_FQS 3 /* Wait for force-quiescent-state time. */ 383#define RCU_GP_ONOFF 3 /* Grace-period initialization hotplug. */
384#define RCU_GP_DOING_FQS 4 /* Wait done for force-quiescent-state time. */ 384#define RCU_GP_INIT 4 /* Grace-period initialization. */
385#define RCU_GP_CLEANUP 5 /* Grace-period cleanup started. */ 385#define RCU_GP_WAIT_FQS 5 /* Wait for force-quiescent-state time. */
386#define RCU_GP_CLEANED 6 /* Grace-period cleanup complete. */ 386#define RCU_GP_DOING_FQS 6 /* Wait done for force-quiescent-state time. */
387#define RCU_GP_CLEANUP 7 /* Grace-period cleanup started. */
388#define RCU_GP_CLEANED 8 /* Grace-period cleanup complete. */
387 389
388#ifndef RCU_TREE_NONCORE 390#ifndef RCU_TREE_NONCORE
389static const char * const gp_state_names[] = { 391static const char * const gp_state_names[] = {
390 "RCU_GP_IDLE", 392 "RCU_GP_IDLE",
391 "RCU_GP_WAIT_GPS", 393 "RCU_GP_WAIT_GPS",
392 "RCU_GP_DONE_GPS", 394 "RCU_GP_DONE_GPS",
395 "RCU_GP_ONOFF",
396 "RCU_GP_INIT",
393 "RCU_GP_WAIT_FQS", 397 "RCU_GP_WAIT_FQS",
394 "RCU_GP_DOING_FQS", 398 "RCU_GP_DOING_FQS",
395 "RCU_GP_CLEANUP", 399 "RCU_GP_CLEANUP",