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>
This commit is contained in:
Zhao Hongjiang 2013-04-17 17:44:16 +08:00 committed by Alibek Omarov
parent 9308c92781
commit 8899bf7640
1 changed files with 6 additions and 2 deletions

View File

@ -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);
}
@ -1575,7 +1577,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);