[RFC/PATCH 3/3] arm: omap: convert omap boot_lock to raw
Russell King - ARM Linux
linux at arm.linux.org.uk
Thu Aug 1 09:37:37 EDT 2013
On Thu, Aug 01, 2013 at 03:12:45PM +0300, Felipe Balbi wrote:
> From: Frank Rowand <frank.rowand at am.sony.com>
>
> 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 at ti.com: taken from RT v3.10.4-rt1 patchset ]
>
> Signed-off-by: Frank Rowand <frank.rowand at am.sony.com>
> Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
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
More information about the linux-arm-kernel
mailing list