diff options
author | Zhao Hongjiang <zhaohongjiang@huawei.com> | 2013-04-17 09:44:16 (GMT) |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2014-04-10 00:19:05 (GMT) |
commit | d11e34b2f77cf1a97676bf2a798341e45ed7e6b3 (patch) | |
tree | 0f4f3fb2ba484234a48074e554012dca50ae5a4e /kernel | |
parent | 5062db1dd6a5720edb3b310f6c89474b96853c6c (diff) | |
download | linux-fsl-qoriq-d11e34b2f77cf1a97676bf2a798341e45ed7e6b3.tar.xz |
timers: prepare for full preemption improve
wake_up should do nothing on the nort, so we should use wakeup_timer_waiters,
also fix a spell mistake.
Cc: stable-rt@vger.kernel.org
Signed-off-by: Zhao Hongjiang <zhaohongjiang@huawei.com>
[bigeasy: s/CONFIG_PREEMPT_RT_BASE/CONFIG_PREEMPT_RT_FULL/]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/timer.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/timer.c b/kernel/timer.c index cd92037..5f0a85b 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -78,7 +78,9 @@ struct tvec_root { struct tvec_base { spinlock_t lock; struct timer_list *running_timer; +#ifdef CONFIG_PREEMPT_RT_FULL wait_queue_head_t wait_for_running_timer; +#endif unsigned long timer_jiffies; unsigned long next_timer; unsigned long active_timers; @@ -962,7 +964,7 @@ static void wait_for_running_timer(struct timer_list *timer) base->running_timer != timer); } -# define wakeup_timer_waiters(b) wake_up(&(b)->wait_for_tunning_timer) +# define wakeup_timer_waiters(b) wake_up(&(b)->wait_for_running_timer) #else static inline void wait_for_running_timer(struct timer_list *timer) { @@ -1216,7 +1218,7 @@ static inline void __run_timers(struct tvec_base *base) } } } - wake_up(&base->wait_for_running_timer); + wakeup_timer_waiters(base); spin_unlock_irq(&base->lock); } @@ -1576,7 +1578,9 @@ static int init_timers_cpu(int cpu) base = per_cpu(tvec_bases, cpu); } +#ifdef CONFIG_PREEMPT_RT_FULL init_waitqueue_head(&base->wait_for_running_timer); +#endif for (j = 0; j < TVN_SIZE; j++) { INIT_LIST_HEAD(base->tv5.vec + j); |