
From: jbarnes@sgi.com (Jesse Barnes)

register_cpu() needs to honor the root argument that gets passed in if it's
valid.



 25-akpm/drivers/base/cpu.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletion(-)

diff -puN drivers/base/cpu.c~register_cpu-fix drivers/base/cpu.c
--- 25/drivers/base/cpu.c~register_cpu-fix	Fri Oct 17 12:43:12 2003
+++ 25-akpm/drivers/base/cpu.c	Fri Oct 17 12:43:12 2003
@@ -23,10 +23,18 @@ EXPORT_SYMBOL(cpu_sysdev_class);
  */
 int __init register_cpu(struct cpu *cpu, int num, struct node *root)
 {
+	int error;
+
 	cpu->node_id = cpu_to_node(num);
 	cpu->sysdev.id = num;
 	cpu->sysdev.cls = &cpu_sysdev_class;
-	return sys_device_register(&cpu->sysdev);
+
+	error = sys_device_register(&cpu->sysdev);
+	if (!error && root)
+		error = sysfs_create_link(&root->sysdev.kobj,
+					  &cpu->sysdev.kobj,
+					  kobject_name(&cpu->sysdev.kobj));
+	return error;
 }
 
 

_
