On Thu, Aug 01, 2013 at 03:12:45PM +0300, Felipe Balbi wrote: > From: Frank Rowand <frank.rowand@xxxxxxxxxxx> > > The omap boot_lock is used by the secondary processor startup code. The locking > task is the idle thread, which has idle->sched_class == &idle_sched_class. > idle_sched_class->enqueue_task == NULL, so if the idle task blocks on the > lock, the attempt to wake it when the lock becomes available will fail: > > try_to_wake_up() > ... > activate_task() > enqueue_task() > p->sched_class->enqueue_task(rq, p, flags) > > Fix by converting boot_lock to a raw spin lock. > > [ balbi@xxxxxx: taken from RT v3.10.4-rt1 patchset ] > > Signed-off-by: Frank Rowand <frank.rowand@xxxxxxxxxxx> > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> There's a whole bunch of these, OMAP is not the only one. If someone's going to fix one case, the rest should also be fixed. See: arch/arm/mach-exynos/platsmp.c arch/arm/mach-msm/platsmp.c arch/arm/mach-prima2/platsmp.c arch/arm/mach-spear/platsmp.c arch/arm/mach-sti/platsmp.c arch/arm/mach-ux500/platsmp.c -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html