mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-20 14:16:02 +00:00
powerpc: some changes in numa_setup_cpu()
this patches changes some error handling logics in numa_setup_cpu(), when cpu node is not found, so: if the cpu is possible, but not present, -1 is kept in numa_cpu_lookup_table, so later, if the cpu is added, we could set correct numa information for it. if the cpu is present, then we set the first online node to numa_cpu_lookup_table instead of 0 ( in case 0 might not be an online node? ) Cc: Nishanth Aravamudan <nacc@linux.vnet.ibm.com> Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com> Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com> Acked-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
bc3c4327c9
commit
297cf5025b
1 changed files with 8 additions and 6 deletions
|
@ -538,7 +538,7 @@ static int of_drconf_to_nid_single(struct of_drconf_cell *drmem,
|
|||
*/
|
||||
static int numa_setup_cpu(unsigned long lcpu)
|
||||
{
|
||||
int nid;
|
||||
int nid = -1;
|
||||
struct device_node *cpu;
|
||||
|
||||
/*
|
||||
|
@ -555,19 +555,21 @@ static int numa_setup_cpu(unsigned long lcpu)
|
|||
|
||||
if (!cpu) {
|
||||
WARN_ON(1);
|
||||
nid = 0;
|
||||
if (cpu_present(lcpu))
|
||||
goto out_present;
|
||||
else
|
||||
goto out;
|
||||
}
|
||||
|
||||
nid = of_node_to_nid_single(cpu);
|
||||
|
||||
out_present:
|
||||
if (nid < 0 || !node_online(nid))
|
||||
nid = first_online_node;
|
||||
out:
|
||||
|
||||
map_cpu_to_node(lcpu, nid);
|
||||
|
||||
of_node_put(cpu);
|
||||
|
||||
out:
|
||||
return nid;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue