[PATCH] ppc64: don't create spurious symlinks under node0 sysdev
authorNathan Lynch <ntl@pobox.com>
Tue, 28 Jun 2005 10:55:25 +0000 (20:55 +1000)
committerPaul Mackerras <paulus@samba.org>
Tue, 28 Jun 2005 10:55:25 +0000 (20:55 +1000)
On partitioned systems we can wind up creating spurious symlinks in
/sys/devices/system/node/node0 to non-present cpus.  The symlinks are
not broken; the problem is that we're potentially misinforming
userspace that there is a relationship between node0 and cpus which
are to be added later.  There's no guarantee at all that a cpu which
is added later will belong to node 0.

Signed-off-by: Nathan Lynch <ntl@pobox.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/ppc64/kernel/sysfs.c

index c8fa656..2f704a2 100644 (file)
@@ -400,7 +400,12 @@ static int __init topology_init(void)
                struct cpu *c = &per_cpu(cpu_devices, cpu);
 
 #ifdef CONFIG_NUMA
-               parent = &node_devices[cpu_to_node(cpu)];
+               /* The node to which a cpu belongs can't be known
+                * until the cpu is made present.
+                */
+               parent = NULL;
+               if (cpu_present(cpu))
+                       parent = &node_devices[cpu_to_node(cpu)];
 #endif
                /*
                 * For now, we just see if the system supports making