diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2012-12-03 16:25:21 +0100 |
---|---|---|
committer | Steven Rostedt <rostedt@rostedt.homelinux.com> | 2013-04-23 11:35:23 -0400 |
commit | 7cddca49a5ab5948e93c9cc050043b18a546bee5 (patch) | |
tree | 1c36cb4f64ad68917c7d0be7955ac0c5cf31f021 | |
parent | ca2333c7058e1cb7de23bdb0a2ba4ee2fefc2385 (diff) |
rcutiny: Use simple waitqueue
Simple waitqueues can be handled from interrupt disabled contexts.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-rw-r--r-- | kernel/rcutiny_plugin.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/kernel/rcutiny_plugin.h b/kernel/rcutiny_plugin.h index f259c676195f..1cd0c6e5cd75 100644 --- a/kernel/rcutiny_plugin.h +++ b/kernel/rcutiny_plugin.h @@ -25,6 +25,7 @@ #include <linux/kthread.h> #include <linux/debugfs.h> #include <linux/seq_file.h> +#include <linux/wait-simple.h> #ifdef CONFIG_RCU_TRACE #define RCU_TRACE(stmt) stmt @@ -736,7 +737,7 @@ void synchronize_rcu(void) } EXPORT_SYMBOL_GPL(synchronize_rcu); -static DECLARE_WAIT_QUEUE_HEAD(sync_rcu_preempt_exp_wq); +static DEFINE_SWAIT_HEAD(sync_rcu_preempt_exp_wq); static unsigned long sync_rcu_preempt_exp_count; static DEFINE_MUTEX(sync_rcu_preempt_exp_mutex); @@ -758,7 +759,7 @@ static int rcu_preempted_readers_exp(void) */ static void rcu_report_exp_done(void) { - wake_up(&sync_rcu_preempt_exp_wq); + swait_wake(&sync_rcu_preempt_exp_wq); } /* @@ -810,8 +811,8 @@ void synchronize_rcu_expedited(void) else { rcu_initiate_boost(); local_irq_restore(flags); - wait_event(sync_rcu_preempt_exp_wq, - !rcu_preempted_readers_exp()); + swait_event(sync_rcu_preempt_exp_wq, + !rcu_preempted_readers_exp()); } /* Clean up and exit. */ |