linux/arch/arm/plat-versatile
Sebastian Andrzej Siewior 830eec2467 ARM: versatile: convert boot_lock to raw
The arm 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.

Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Frank Rowand <frank.rowand@am.sony.com>
Link: http://lkml.kernel.org/r/4E77B952.3010606@am.sony.com
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
2018-12-14 14:44:59 +00:00
..
include/plat ARM: vexpress/realview: consolidate immitation CPU hotplug 2018-12-14 14:44:59 +00:00
headsmp.S ARM: vexpress: add big endian support 2013-10-19 20:46:34 +01:00
hotplug.c ARM: vexpress/realview: consolidate immitation CPU hotplug 2018-12-14 14:44:59 +00:00
Kconfig ARM: plat-versatile: Remove unused clock.c file 2016-02-10 09:22:34 +01:00
Makefile ARM: vexpress/realview: consolidate immitation CPU hotplug 2018-12-14 14:44:59 +00:00
platsmp.c ARM: versatile: convert boot_lock to raw 2018-12-14 14:44:59 +00:00
sched-clock.c ARM: versatile: Switch to sched_clock_register() 2013-11-21 15:41:01 -08:00