Re: [PATCH] powerpc/64: don't refer nr_cpu_ids in asm code when it's undefined

From: Yury Norov
Date: Tue Sep 20 2022 - 18:43:42 EST


On Wed, Sep 21, 2022 at 08:20:06AM +1000, Stephen Rothwell wrote:
> Hi Yury,
>
> On Tue, 20 Sep 2022 08:29:35 -0700 Yury Norov <yury.norov@xxxxxxxxx> wrote:
> >
>
> > diff --git a/arch/powerpc/kernel/head_64.S b/arch/powerpc/kernel/head_64.S
> > index cf2c08902c05..7cb97881635e 100644
> > --- a/arch/powerpc/kernel/head_64.S
> > +++ b/arch/powerpc/kernel/head_64.S
> > @@ -400,7 +400,11 @@ generic_secondary_common_init:
> > #else
> > LOAD_REG_ADDR(r8, paca_ptrs) /* Load paca_ptrs pointe */
> > ld r8,0(r8) /* Get base vaddr of array */
> > +#if (NR_CPUS == 1) || defined(CONFIG_FORCE_NR_CPUS)
> > + LOAD_REG_IMMEDIATE(r7, NR_CPUS)
> > +#else
> > LOAD_REG_ADDR(r7, nr_cpu_ids) /* Load nr_cpu_ids address */
> > +#endif
> > lwz r7,0(r7) /* also the max paca allocated */
> > li r5,0 /* logical cpu id */
> > 1:
> > --
> > 2.34.1
> >
>
> I don't know PPC assembly very well, but should the #endif be one line
> lower so that the constant is not dereferenced in the non-#else case?

Looks like you're right. Thanks, I'll send a v2.