Balbir Singh <bsinghar...@gmail.com> writes: > On Fri, Jun 2, 2017 at 3:14 PM, Michael Ellerman <m...@ellerman.id.au> wrote: >> diff --git a/arch/powerpc/include/asm/topology.h >> b/arch/powerpc/include/asm/topology.h >> index 8b3b46b7b0f2..8f3b2ec09b9e 100644 >> --- a/arch/powerpc/include/asm/topology.h >> +++ b/arch/powerpc/include/asm/topology.h >> @@ -44,8 +44,22 @@ extern void __init dump_numa_cpu_topology(void); >> extern int sysfs_add_device_to_node(struct device *dev, int nid); >> extern void sysfs_remove_device_from_node(struct device *dev, int nid); >> >> +static inline int early_cpu_to_node(int cpu) >> +{ >> + int nid; >> + >> + nid = numa_cpu_lookup_table[cpu]; >> + >> + /* >> + * Some functions, eg. node_distance() don't cope with -1, so instead >> + * fall back to node 0 if nid is unset (it should be, except bugs). >> + */ >> + return (nid < 0) ? 0 : nid; >> +} >> #else > > Not sure if its entirely related, but I had tried to do > > https://patchwork.ozlabs.org/patch/683556/ > > to setup the mapping earlier, but we would have still missed the > pcpu_fc_alloc.
It's related. But doesn't fix this bug. I didn't merge it because I assumed it wouldn't build with CONFIG_NUMA=n, but seems it does so I'll grab it. cheers