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

Yury Norov yury.norov at gmail.com
Wed Sep 21 08:41:23 AEST 2022


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 at gmail.com> 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.


More information about the Linuxppc-dev mailing list