Hi ! in 3.12.6-rt9: patch timers-do-not-raise-softirq-unconditionally.patch fails compile test for: CONFIG_PREEMPT_RT_BASE=y # CONFIG_PREEMPT_RT_FULL is not set full config with seed 0xE3A03BD0. <snip> CC kernel/timer.o kernel/timer.c: In function 'run_local_timers': kernel/timer.c:1463: error: implicit declaration of function 'spin_do_trylock' kernel/timer.c:1474: error: implicit declaration of function 'rt_spin_unlock_after_trylock_in_irq' make[1]: *** [kernel/timer.o] Error 1 make: *** [kernel] Error 2 ... RT specific API not ifdef'ed, a brute force ifdefification "fix" below But what this might actually point to is that testing of patches with RT off (and other configs ?) is being neglected a bit. rt6 also had a problem (seed was 0xBE96A834 file:kernel/rtmutex.c:__mutex_lock_check_stamp:1007) maybe a set of minimum test-configs should be defined to atleast catch build-failurs. thx! hofrat Signed-off-by: Nicholas Mc Guire <der.herr@xxxxxxx> --- kernel/timer.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/kernel/timer.c b/kernel/timer.c index 46467be..88951cb 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -1452,9 +1452,13 @@ static void run_timer_softirq(struct softirq_action *h) */ void run_local_timers(void) { +#ifdef CONFIG_PREEMPT_RT_FULL struct tvec_base *base = __this_cpu_read(tvec_bases); +#endif hrtimer_run_queues(); + +#ifdef CONFIG_PREEMPT_RT_FULL /* * We can access this lockless as we are in the timer * interrupt. If there are no timers queued, nothing to do in @@ -1472,7 +1476,9 @@ void run_local_timers(void) raise_softirq(TIMER_SOFTIRQ); out: rt_spin_unlock_after_trylock_in_irq(&base->lock); - +#else + raise_softirq(TIMER_SOFTIRQ); +#endif } #ifdef __ARCH_WANT_SYS_ALARM -- 1.7.2.5 -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html