[PATCH] ARM: EXYNOS: Fix coupled CPU idle freeze on Exynos4210

Krzysztof Kozlowski krzk at kernel.org
Wed Mar 21 10:55:09 PDT 2018


On Wed, Mar 21, 2018 at 02:49:52PM +0100, Rafael J. Wysocki wrote:
> 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 at samsung.com>
> > CC: stable at vger.kernel.org # 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?

Yes, it is CC-stable.

Marek,
Thanks, applied (with adjustment of stable address - I believe if some
text follows it, it makes more readable to put <>).

Best regards,
Krzysztof




More information about the linux-arm-kernel mailing list