[PATCH] ppc64: don't create spurious symlinks under node0 sysdev

Nathan Lynch ntl at pobox.com
Fri May 6 04:32:02 EST 2005


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.


 sysfs.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletion(-)

Signed-off-by: Nathan Lynch <ntl at pobox.com>

Index: linux-2.6.12-rc3-mm3/arch/ppc64/kernel/sysfs.c
===================================================================
--- linux-2.6.12-rc3-mm3.orig/arch/ppc64/kernel/sysfs.c
+++ linux-2.6.12-rc3-mm3/arch/ppc64/kernel/sysfs.c
@@ -404,7 +404,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




More information about the Linuxppc64-dev mailing list