diff options
Diffstat (limited to 'kernel/rcupdate.c')
| -rw-r--r-- | kernel/rcupdate.c | 11 | 
1 files changed, 9 insertions, 2 deletions
| diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c index ad63af8b252..d92a76a881a 100644 --- a/kernel/rcupdate.c +++ b/kernel/rcupdate.c @@ -77,8 +77,15 @@ void wakeme_after_rcu(struct rcu_head  *head)   * sections are delimited by rcu_read_lock() and rcu_read_unlock(),   * and may be nested.   */ -void synchronize_rcu(void);	/* Makes kernel-doc tools happy */ -synchronize_rcu_xxx(synchronize_rcu, call_rcu) +void synchronize_rcu(void) +{ +	struct rcu_synchronize rcu; +	init_completion(&rcu.completion); +	/* Will wake me after RCU finished. */ +	call_rcu(&rcu.head, wakeme_after_rcu); +	/* Wait for it. */ +	wait_for_completion(&rcu.completion); +}  EXPORT_SYMBOL_GPL(synchronize_rcu);  static void rcu_barrier_callback(struct rcu_head *notused) | 
