when using patch-2.6.29.1-rt8 with CONFIG_PREEMPT_SOFTIRQS=y, but not enable PREEMPT_RT, there will be an error when linking kernel: undefined reference to hrtimer_wait_for_timer I found that, hrtimer_wait_for_timer is only defined when PREEMPT_RT is enabled, but in include/linux/hrtimer.h, the source code is like this: #ifdef CONFIG_PREEMPT_SOFTIRQS extern void hrtimer_wait_for_timer(const struct hrtimer *timer); #else # define hrtimer_wait_for_timer(timer) do { cpu_relax(); } while (0) a possible fix should be: diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h index 8bafa35..1c1cdf3 100644 --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h @@ -366,7 +366,7 @@ static inline int hrtimer_restart(struct hrtimer *timer) } /* Softirq preemption could deadlock timer removal */ -#ifdef CONFIG_PREEMPT_SOFTIRQS +#if defined(CONFIG_PREEMPT_SOFTIRQS) && defined(CONFIG_PREEMPT_RT) extern void hrtimer_wait_for_timer(const struct hrtimer *timer); #else # define hrtimer_wait_for_timer(timer) do { cpu_relax(); } while (0) -- Wu Zhangjin DSLab, Lanzhou University, China www.lemote.com, Jiangsu Province, China -- 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