On Wednesday, March 21, 2018 10:45:05 AM CET Marek Szyprowski wrote: > Since commit 04c8b0f82c7d ("irqchip/gic: Make locking a BL_SWITCHER only > feature") coupled CPU idle freezes from time to time on Exynos4210. Later > commit 313c8c16ee62 ("PM / CPU: replace raw_notifier with atomic_notifier") > changed the context in which the CPU idle code is executed, what results > in fully reproducible freeze all the time. However, almost the same coupled > CPU idle code works fine on Exynos3250 regarless of the changes made in > the mentioned commits. > > It turned out that the IPI call used on Exynos4210 is conflicting with the > change done in the first mentioned commit in GIC. Fix this by using the > same code path as for Exynos3250, instead of the IPI call for > synchronization with second CPU core, call dsb_sev() directly. > > Tested on Exynos4210-based Trats and Origen boards. > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > CC: stable@xxxxxxxxxxxxxxx # v4.13+ > --- > arch/arm/mach-exynos/pm.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/arch/arm/mach-exynos/pm.c b/arch/arm/mach-exynos/pm.c > index dc4346ecf16d..a1055a2b8d54 100644 > --- a/arch/arm/mach-exynos/pm.c > +++ b/arch/arm/mach-exynos/pm.c > @@ -271,11 +271,7 @@ static int exynos_cpu0_enter_aftr(void) > goto fail; > > call_firmware_op(cpu_boot, 1); > - > - if (soc_is_exynos3250()) > - dsb_sev(); > - else > - arch_send_wakeup_ipi_mask(cpumask_of(1)); > + dsb_sev(); > } > } > fail: > That will be -stable material I believe?