On Fri, 22 Mar 2019 at 12:48, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> wrote: > > On all supported Exynos SoC it is enough to call dsb_sev() like in the > Exynos3250 case instead of the IPI, so simplify the code a bit. > > Signed-off-by: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> > --- > arch/arm/mach-exynos/platsmp.c | 5 +---- > 1 file changed, 1 insertion(+), 4 deletions(-) > > diff --git a/arch/arm/mach-exynos/platsmp.c b/arch/arm/mach-exynos/platsmp.c > index 3cced9dfe963..65da13923b8f 100644 > --- a/arch/arm/mach-exynos/platsmp.c > +++ b/arch/arm/mach-exynos/platsmp.c > @@ -361,10 +361,7 @@ static int exynos_boot_secondary(unsigned int cpu, struct task_struct *idle) > > call_firmware_op(cpu_boot, core_id); > > - if (soc_is_exynos3250()) > - dsb_sev(); > - else > - arch_send_wakeup_ipi_mask(cpumask_of(cpu)); > + dsb_sev(); Code is simplified but it is not equivalent. The wakeup IP was sent only to booted secondary CPU. SEV is sent to all CPUs. If you are onlining last CPU in octa-core setup, you will be poking and waking up all other cores as well. Best regards, Krzysztof