On 2015-04-23 08:58, Mike Galbraith wrote: > On Thu, 2015-04-23 at 08:29 +0200, Jan Kiszka wrote: >> >>> void irq_work_tick(void) >>> { >>> -#ifdef CONFIG_PREEMPT_RT_FULL >>> - irq_work_run_list(this_cpu_ptr(&lazy_list)); >>> -#else >>> - struct llist_head *raised = &__get_cpu_var(raised_list); >>> + struct llist_head *raised = this_cpu_ptr(&raised_list); >>> >>> - if (!llist_empty(raised) && !arch_irq_work_has_interrupt()) >>> + if (!llist_empty(raised) && >>> (!arch_irq_work_has_interrupt() || >>> + IS_ENABLED(CONFIG_PREEMPT_RT_FULL))) >> >> OK, that additional condition is addressing archs that don't have >> irq_work support and fall back to the timer, right? > > How will ever run if it is not run in either irq_work_run() or > irq_work_tick()? There are two choices, we better pick one. Ah, now I see it. Indeed. OK, will run through your fix and suggestions and come up with a new version. Thanks, Jan -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux -- 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