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. > 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. -ritesh > -device_initcall(topology_update_init); > -#endif /* CONFIG_PPC_SPLPAR */ > -- > 2.43.0
