diff options
Diffstat (limited to 'kernel/rcu/srcutiny.c')
| -rw-r--r-- | kernel/rcu/srcutiny.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/kernel/rcu/srcutiny.c b/kernel/rcu/srcutiny.c index 76ac5f50b2c7..622792abe41a 100644 --- a/kernel/rcu/srcutiny.c +++ b/kernel/rcu/srcutiny.c @@ -86,16 +86,19 @@ EXPORT_SYMBOL_GPL(init_srcu_struct);   * Must invoke this after you are finished using a given srcu_struct that   * was initialized via init_srcu_struct(), else you leak memory.   */ -void cleanup_srcu_struct(struct srcu_struct *sp) +void _cleanup_srcu_struct(struct srcu_struct *sp, bool quiesced)  {  	WARN_ON(sp->srcu_lock_nesting[0] || sp->srcu_lock_nesting[1]); -	flush_work(&sp->srcu_work); +	if (quiesced) +		WARN_ON(work_pending(&sp->srcu_work)); +	else +		flush_work(&sp->srcu_work);  	WARN_ON(sp->srcu_gp_running);  	WARN_ON(sp->srcu_gp_waiting);  	WARN_ON(sp->srcu_cb_head);  	WARN_ON(&sp->srcu_cb_head != sp->srcu_cb_tail);  } -EXPORT_SYMBOL_GPL(cleanup_srcu_struct); +EXPORT_SYMBOL_GPL(_cleanup_srcu_struct);  /*   * Removes the count for the old reader from the appropriate element of | 
