diff options
Diffstat (limited to 'kernel/rcu/tree.h')
-rw-r--r-- | kernel/rcu/tree.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h index 75dc3c39a02a..bf2c1e669691 100644 --- a/kernel/rcu/tree.h +++ b/kernel/rcu/tree.h | |||
@@ -252,7 +252,6 @@ struct rcu_data { | |||
252 | bool passed_quiesce; /* User-mode/idle loop etc. */ | 252 | bool passed_quiesce; /* User-mode/idle loop etc. */ |
253 | bool qs_pending; /* Core waits for quiesc state. */ | 253 | bool qs_pending; /* Core waits for quiesc state. */ |
254 | bool beenonline; /* CPU online at least once. */ | 254 | bool beenonline; /* CPU online at least once. */ |
255 | bool preemptible; /* Preemptible RCU? */ | ||
256 | struct rcu_node *mynode; /* This CPU's leaf of hierarchy */ | 255 | struct rcu_node *mynode; /* This CPU's leaf of hierarchy */ |
257 | unsigned long grpmask; /* Mask to apply to leaf qsmask. */ | 256 | unsigned long grpmask; /* Mask to apply to leaf qsmask. */ |
258 | #ifdef CONFIG_RCU_CPU_STALL_INFO | 257 | #ifdef CONFIG_RCU_CPU_STALL_INFO |
@@ -406,7 +405,8 @@ struct rcu_state { | |||
406 | unsigned long completed; /* # of last completed gp. */ | 405 | unsigned long completed; /* # of last completed gp. */ |
407 | struct task_struct *gp_kthread; /* Task for grace periods. */ | 406 | struct task_struct *gp_kthread; /* Task for grace periods. */ |
408 | wait_queue_head_t gp_wq; /* Where GP task waits. */ | 407 | wait_queue_head_t gp_wq; /* Where GP task waits. */ |
409 | int gp_flags; /* Commands for GP task. */ | 408 | short gp_flags; /* Commands for GP task. */ |
409 | short gp_state; /* GP kthread sleep state. */ | ||
410 | 410 | ||
411 | /* End of fields guarded by root rcu_node's lock. */ | 411 | /* End of fields guarded by root rcu_node's lock. */ |
412 | 412 | ||
@@ -462,13 +462,17 @@ struct rcu_state { | |||
462 | const char *name; /* Name of structure. */ | 462 | const char *name; /* Name of structure. */ |
463 | char abbr; /* Abbreviated name. */ | 463 | char abbr; /* Abbreviated name. */ |
464 | struct list_head flavors; /* List of RCU flavors. */ | 464 | struct list_head flavors; /* List of RCU flavors. */ |
465 | struct irq_work wakeup_work; /* Postponed wakeups */ | ||
466 | }; | 465 | }; |
467 | 466 | ||
468 | /* Values for rcu_state structure's gp_flags field. */ | 467 | /* Values for rcu_state structure's gp_flags field. */ |
469 | #define RCU_GP_FLAG_INIT 0x1 /* Need grace-period initialization. */ | 468 | #define RCU_GP_FLAG_INIT 0x1 /* Need grace-period initialization. */ |
470 | #define RCU_GP_FLAG_FQS 0x2 /* Need grace-period quiescent-state forcing. */ | 469 | #define RCU_GP_FLAG_FQS 0x2 /* Need grace-period quiescent-state forcing. */ |
471 | 470 | ||
471 | /* Values for rcu_state structure's gp_flags field. */ | ||
472 | #define RCU_GP_WAIT_INIT 0 /* Initial state. */ | ||
473 | #define RCU_GP_WAIT_GPS 1 /* Wait for grace-period start. */ | ||
474 | #define RCU_GP_WAIT_FQS 2 /* Wait for force-quiescent-state time. */ | ||
475 | |||
472 | extern struct list_head rcu_struct_flavors; | 476 | extern struct list_head rcu_struct_flavors; |
473 | 477 | ||
474 | /* Sequence through rcu_state structures for each RCU flavor. */ | 478 | /* Sequence through rcu_state structures for each RCU flavor. */ |
@@ -547,7 +551,6 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu); | |||
547 | static void print_cpu_stall_info_end(void); | 551 | static void print_cpu_stall_info_end(void); |
548 | static void zero_cpu_stall_ticks(struct rcu_data *rdp); | 552 | static void zero_cpu_stall_ticks(struct rcu_data *rdp); |
549 | static void increment_cpu_stall_ticks(void); | 553 | static void increment_cpu_stall_ticks(void); |
550 | static int rcu_nocb_needs_gp(struct rcu_state *rsp); | ||
551 | static void rcu_nocb_gp_set(struct rcu_node *rnp, int nrq); | 554 | static void rcu_nocb_gp_set(struct rcu_node *rnp, int nrq); |
552 | static void rcu_nocb_gp_cleanup(struct rcu_state *rsp, struct rcu_node *rnp); | 555 | static void rcu_nocb_gp_cleanup(struct rcu_state *rsp, struct rcu_node *rnp); |
553 | static void rcu_init_one_nocb(struct rcu_node *rnp); | 556 | static void rcu_init_one_nocb(struct rcu_node *rnp); |