Am 11.07.2018 um 13:00 schrieb Sebastian Andrzej Siewior: > From: Frank Rowand <frank.rowand@xxxxxxxxxxx> > > 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: "Andreas Färber" <afaerber@xxxxxxx> > Cc: Kukjin Kim <kgene@xxxxxxxxxx> > Cc: Krzysztof Kozlowski <krzk@xxxxxxxxxx> > Cc: Wei Xu <xuwei5@xxxxxxxxxxxxx> > Cc: Tony Lindgren <tony@xxxxxxxxxxx> > Cc: Barry Song <baohua@xxxxxxxxxx> > Cc: Andy Gross <andy.gross@xxxxxxxxxx> > Cc: David Brown <david.brown@xxxxxxxxxx> > Cc: Viresh Kumar <vireshk@xxxxxxxxxx> > Cc: Shiraz Hashim <shiraz.linux.kernel@xxxxxxxxx> > Cc: Patrice Chotard <patrice.chotard@xxxxxx> > Cc: Maxime Ripard <maxime.ripard@xxxxxxxxxxx> > Cc: Chen-Yu Tsai <wens@xxxxxxxx> > Cc: linux-samsung-soc@xxxxxxxxxxxxxxx > Cc: linux-omap@xxxxxxxxxxxxxxx > Cc: linux-arm-msm@xxxxxxxxxxxxxxx > Cc: linux-soc@xxxxxxxxxxxxxxx > Signed-off-by: Frank Rowand <frank.rowand@xxxxxxxxxxx> > Link: http://lkml.kernel.org/r/4E77B952.3010606@xxxxxxxxxxx > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Tested-by: Tony Lindgren <tony@xxxxxxxxxxx> > Acked-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx> > Tested-by: Krzysztof Kozlowski <krzk@xxxxxxxxxx> [Exynos5422 Linaro PM-QA] > Signed-off-by: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > --- > arch/arm/mach-actions/platsmp.c | 6 +++--- > arch/arm/mach-exynos/platsmp.c | 12 ++++++------ > arch/arm/mach-hisi/platmcpm.c | 22 +++++++++++----------- > arch/arm/mach-omap2/omap-smp.c | 10 +++++----- > arch/arm/mach-prima2/platsmp.c | 10 +++++----- > arch/arm/mach-qcom/platsmp.c | 10 +++++----- > arch/arm/mach-spear/platsmp.c | 10 +++++----- > arch/arm/mach-sti/platsmp.c | 10 +++++----- > arch/arm/mach-sunxi/mc_smp.c | 20 ++++++++++---------- > arch/arm/plat-versatile/platsmp.c | 10 +++++----- > 10 files changed, 60 insertions(+), 60 deletions(-) > > diff --git a/arch/arm/mach-actions/platsmp.c b/arch/arm/mach-actions/platsmp.c > index 3efaa10efc43..770079245d27 100644 > --- a/arch/arm/mach-actions/platsmp.c > +++ b/arch/arm/mach-actions/platsmp.c > @@ -39,7 +39,7 @@ static void __iomem *sps_base_addr; > static void __iomem *timer_base_addr; > static int ncores; > > -static DEFINE_SPINLOCK(boot_lock); > +static DEFINE_RAW_SPINLOCK(boot_lock); > > void owl_secondary_startup(void); > > @@ -93,7 +93,7 @@ static int s500_smp_boot_secondary(unsigned int cpu, struct task_struct *idle) > > udelay(10); > > - spin_lock(&boot_lock); > + raw_spin_lock(&boot_lock); > > smp_send_reschedule(cpu); > > @@ -106,7 +106,7 @@ static int s500_smp_boot_secondary(unsigned int cpu, struct task_struct *idle) > writel(0, timer_base_addr + OWL_CPU1_ADDR + (cpu - 1) * 4); > writel(0, timer_base_addr + OWL_CPU1_FLAG + (cpu - 1) * 4); > > - spin_unlock(&boot_lock); > + raw_spin_unlock(&boot_lock); > > return 0; > } [snip] Looks okay, so Acked-by: Andreas Färber <afaerber@xxxxxxx> (for mach-actions) Regards, Andreas -- SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, Jane Smithard, Graham Norton HRB 21284 (AG Nürnberg) -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html