* Ritesh Harjani <[email protected]> [2026-07-10 09:34:55]:

> Srikar Dronamraju <[email protected]> writes:
> 
> > Make cpu_to_coregroup_id() available outside PPC_SPLPAR so it can be
> > used by platforms that do not rely on the SPLPAR-specific VPHN path.
> >
> > Keep the existing fallback behavior by returning the core ID when
> > coregroup information is unavailable.
> >
> 
> Looks like this mainly brings the cpu_to_coregroup_id() outside of
> CONFIG_PPC_SPLPAR gate. 
> 

Yes, thats the intent of the patch


> > Signed-off-by: Srikar Dronamraju <[email protected]>
> > ---
> > Changelog from v1:
> > - Handle comments from Christophe Leroy; Remove extern key word in
> >   declaration
> >
> >  arch/powerpc/include/asm/topology.h | 15 +++++++--------
> >  arch/powerpc/mm/numa.c              | 22 ++++++++++++++++------
> >  2 files changed, 23 insertions(+), 14 deletions(-)
> >
> > diff --git a/arch/powerpc/include/asm/topology.h 
> > b/arch/powerpc/include/asm/topology.h
> > index 66ed5fe1b718..385715f1ad56 100644
> > --- a/arch/powerpc/include/asm/topology.h
> > +++ b/arch/powerpc/include/asm/topology.h
> > @@ -71,6 +71,7 @@ extern void map_cpu_to_node(int cpu, int node);
> >  extern void unmap_cpu_from_node(unsigned long cpu);
> >  #endif /* CONFIG_HOTPLUG_CPU */
> >  
> > +int cpu_to_coregroup_id(int cpu);
> >  #else
> >  
> >  static inline int early_cpu_to_node(int cpu) { return 0; }
> > @@ -107,14 +108,6 @@ static inline void map_cpu_to_node(int cpu, int node) 
> > {}
> >  static inline void unmap_cpu_from_node(unsigned long cpu) {}
> >  #endif /* CONFIG_HOTPLUG_CPU */
> >  #endif /* CONFIG_SMP */
> > -
> > -#endif /* CONFIG_NUMA */
> > -
> > -#if defined(CONFIG_NUMA) && defined(CONFIG_PPC_SPLPAR)
> > -void find_and_update_cpu_nid(int cpu);
> > -extern int cpu_to_coregroup_id(int cpu);
> > -#else
> > -static inline void find_and_update_cpu_nid(int cpu) {}
> >  static inline int cpu_to_coregroup_id(int cpu)
> >  {
> >  #ifdef CONFIG_SMP
> > @@ -124,6 +117,12 @@ static inline int cpu_to_coregroup_id(int cpu)
> >  #endif
> >  }
> >  
> > +#endif /* CONFIG_NUMA */
> > +
> > +#if defined(CONFIG_NUMA) && defined(CONFIG_PPC_SPLPAR)
> > +void find_and_update_cpu_nid(int cpu);
> > +#else
> > +static inline void find_and_update_cpu_nid(int cpu) {}
> >  #endif /* CONFIG_NUMA && CONFIG_PPC_SPLPAR */
> >  
> >  #include <asm-generic/topology.h>
> > diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
> > index c44a80d8fc11..9aa71eb7e96b 100644
> > --- a/arch/powerpc/mm/numa.c
> > +++ b/arch/powerpc/mm/numa.c
> > @@ -1428,6 +1428,21 @@ void find_and_update_cpu_nid(int cpu)
> >     pr_debug("%s:%d cpu %d nid %d\n", __func__, __LINE__, cpu, new_nid);
> >  }
> >  
> > +static int topology_update_init(void)
> > +{
> > +   topology_inited = 1;
> > +   return 0;
> > +}
> > +device_initcall(topology_update_init);
> > +
> > +#else
> > +static long vphn_get_associativity(unsigned long cpu,
> > +                                   __be32 *associativity)
> > +{
> > +   return -1;
> > +}
> > +#endif /* CONFIG_PPC_SPLPAR */
> > +
> >  int cpu_to_coregroup_id(int cpu)
> >  {
> >     __be32 associativity[VPHN_ASSOC_BUFSIZE] = {0};
> > @@ -1453,10 +1468,5 @@ int cpu_to_coregroup_id(int cpu)
> >     return cpu_to_core_id(cpu);
> >  }
> >  
> > -static int topology_update_init(void)
> > -{
> > -   topology_inited = 1;
> > -   return 0;
> > +   return coregroup_id;
> >  }
> 
> These above two lines seems to be out of any function scope. So applying
> only patch-1 & patch-2 will give a compile error. This needs fixing.
> 

Yes, will fix this

> -ritesh
> 
> > -device_initcall(topology_update_init);
> > -#endif /* CONFIG_PPC_SPLPAR */
> > -- 
> > 2.43.0

-- 
Thanks and Regards
Srikar Dronamraju

Reply via email to