|
@@ -8,6 +8,7 @@
|
|
|
#include <linux/cpu.h>
|
|
|
#include <linux/topology.h>
|
|
|
#include <linux/device.h>
|
|
|
+#include <linux/node.h>
|
|
|
|
|
|
#include "base.h"
|
|
|
|
|
@@ -57,13 +58,12 @@ static void __devinit register_cpu_control(struct cpu *cpu)
|
|
|
{
|
|
|
sysdev_create_file(&cpu->sysdev, &attr_online);
|
|
|
}
|
|
|
-void unregister_cpu(struct cpu *cpu, struct node *root)
|
|
|
+void unregister_cpu(struct cpu *cpu)
|
|
|
{
|
|
|
int logical_cpu = cpu->sysdev.id;
|
|
|
|
|
|
- if (root)
|
|
|
- sysfs_remove_link(&root->sysdev.kobj,
|
|
|
- kobject_name(&cpu->sysdev.kobj));
|
|
|
+ unregister_cpu_under_node(logical_cpu, cpu_to_node(logical_cpu));
|
|
|
+
|
|
|
sysdev_remove_file(&cpu->sysdev, &attr_online);
|
|
|
|
|
|
sysdev_unregister(&cpu->sysdev);
|
|
@@ -109,23 +109,21 @@ static SYSDEV_ATTR(crash_notes, 0400, show_crash_notes, NULL);
|
|
|
*
|
|
|
* Initialize and register the CPU device.
|
|
|
*/
|
|
|
-int __devinit register_cpu(struct cpu *cpu, int num, struct node *root)
|
|
|
+int __devinit register_cpu(struct cpu *cpu, int num)
|
|
|
{
|
|
|
int error;
|
|
|
-
|
|
|
cpu->node_id = cpu_to_node(num);
|
|
|
cpu->sysdev.id = num;
|
|
|
cpu->sysdev.cls = &cpu_sysdev_class;
|
|
|
|
|
|
error = sysdev_register(&cpu->sysdev);
|
|
|
- if (!error && root)
|
|
|
- error = sysfs_create_link(&root->sysdev.kobj,
|
|
|
- &cpu->sysdev.kobj,
|
|
|
- kobject_name(&cpu->sysdev.kobj));
|
|
|
+
|
|
|
if (!error && !cpu->no_control)
|
|
|
register_cpu_control(cpu);
|
|
|
if (!error)
|
|
|
cpu_sys_devices[num] = &cpu->sysdev;
|
|
|
+ if (!error)
|
|
|
+ register_cpu_under_node(num, cpu_to_node(num));
|
|
|
|
|
|
#ifdef CONFIG_KEXEC
|
|
|
if (!error)
|