Re: [PATCH 34/39] arm64: psci: Ignore DENIED CPUs

From: Russell King (Oracle)
Date: Mon Nov 20 2023 - 04:24:54 EST


On Thu, Nov 16, 2023 at 07:45:51AM +0000, Jianyong Wu wrote:
> Hi Russell,
>
> One inline comment.
...
> > Changes since RFC v2
> > * Add specification reference
> > * Use EPERM rather than EPROBE_DEFER
...
> > @@ -40,7 +40,7 @@ static int cpu_psci_cpu_boot(unsigned int cpu) {
> > phys_addr_t pa_secondary_entry = __pa_symbol(secondary_entry);
> > int err = psci_ops.cpu_on(cpu_logical_map(cpu), pa_secondary_entry);
> > - if (err)
> > + if (err && err != -EPROBE_DEFER)
>
> Should this be EPERM? As the following psci cpu_on op will return it. I
> think you miss to change this when apply Jean-Philippe's patch.

It looks like James didn't properly update all places. Also,

> > diff --git a/drivers/firmware/psci/psci.c b/drivers/firmware/psci/psci.c index
> > d9629ff87861..ee82e7880d8c 100644
> > --- a/drivers/firmware/psci/psci.c
> > +++ b/drivers/firmware/psci/psci.c
> > @@ -218,6 +218,8 @@ static int __psci_cpu_on(u32 fn, unsigned long cpuid,
> > unsigned long entry_point)
> > int err;
> >
> > err = invoke_psci_fn(fn, cpuid, entry_point, 0);
> > + if (err == PSCI_RET_DENIED)
> > + return -EPERM;
> > return psci_to_linux_errno(err);

This change is unnecessary - probably comes from when -EPROBE_DEFER was
being used. psci_to_linux_errno() already does:

case PSCI_RET_DENIED:
return -EPERM;

Thanks.

--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 80Mbps down 10Mbps up. Decent connectivity at last!