aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2012-12-03 16:25:21 +0100
committerSteven Rostedt <rostedt@rostedt.homelinux.com>2013-02-25 13:33:40 -0500
commitbb0123a2f7e0c1169e87de6246c7bbf59a94f031 (patch)
treeea283ce68351bd2405931e89aacee86a50d2c6bb
parent88ef5b7d5a9c4e5bafe6d4f0f1f5f3967a17f85c (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.h9
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. */