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 {  	bool		passed_quiesce;	/* User-mode/idle loop etc. */  	bool		qs_pending;	/* Core waits for quiesc state. */  	bool		beenonline;	/* CPU online at least once. */ -	bool		preemptible;	/* Preemptible RCU? */  	struct rcu_node *mynode;	/* This CPU's leaf of hierarchy */  	unsigned long grpmask;		/* Mask to apply to leaf qsmask. */  #ifdef CONFIG_RCU_CPU_STALL_INFO @@ -406,7 +405,8 @@ struct rcu_state {  	unsigned long completed;		/* # of last completed gp. */  	struct task_struct *gp_kthread;		/* Task for grace periods. */  	wait_queue_head_t gp_wq;		/* Where GP task waits. */ -	int gp_flags;				/* Commands for GP task. */ +	short gp_flags;				/* Commands for GP task. */ +	short gp_state;				/* GP kthread sleep state. */  	/* End of fields guarded by root rcu_node's lock. */ @@ -462,13 +462,17 @@ struct rcu_state {  	const char *name;			/* Name of structure. */  	char abbr;				/* Abbreviated name. */  	struct list_head flavors;		/* List of RCU flavors. */ -	struct irq_work wakeup_work;		/* Postponed wakeups */  };  /* Values for rcu_state structure's gp_flags field. */  #define RCU_GP_FLAG_INIT 0x1	/* Need grace-period initialization. */  #define RCU_GP_FLAG_FQS  0x2	/* Need grace-period quiescent-state forcing. */ +/* Values for rcu_state structure's gp_flags field. */ +#define RCU_GP_WAIT_INIT 0	/* Initial state. */ +#define RCU_GP_WAIT_GPS  1	/* Wait for grace-period start. */ +#define RCU_GP_WAIT_FQS  2	/* Wait for force-quiescent-state time. */ +  extern struct list_head rcu_struct_flavors;  /* 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);  static void print_cpu_stall_info_end(void);  static void zero_cpu_stall_ticks(struct rcu_data *rdp);  static void increment_cpu_stall_ticks(void); -static int rcu_nocb_needs_gp(struct rcu_state *rsp);  static void rcu_nocb_gp_set(struct rcu_node *rnp, int nrq);  static void rcu_nocb_gp_cleanup(struct rcu_state *rsp, struct rcu_node *rnp);  static void rcu_init_one_nocb(struct rcu_node *rnp);  |