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; } _