hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/x86/kernel/topology.c
....@@ -31,6 +31,7 @@
3131 #include <linux/init.h>
3232 #include <linux/smp.h>
3333 #include <linux/irq.h>
34
+#include <asm/io_apic.h>
3435 #include <asm/cpu.h>
3536
3637 static DEFINE_PER_CPU(struct x86_cpu, cpu_devices);
....@@ -59,38 +60,28 @@
5960 */
6061 int _debug_hotplug_cpu(int cpu, int action)
6162 {
62
- struct device *dev = get_cpu_device(cpu);
6363 int ret;
6464
6565 if (!cpu_is_hotpluggable(cpu))
6666 return -EINVAL;
6767
68
- lock_device_hotplug();
69
-
7068 switch (action) {
7169 case 0:
72
- ret = cpu_down(cpu);
73
- if (!ret) {
74
- pr_info("CPU %u is now offline\n", cpu);
75
- dev->offline = true;
76
- kobject_uevent(&dev->kobj, KOBJ_OFFLINE);
77
- } else
70
+ ret = remove_cpu(cpu);
71
+ if (!ret)
72
+ pr_info("DEBUG_HOTPLUG_CPU0: CPU %u is now offline\n", cpu);
73
+ else
7874 pr_debug("Can't offline CPU%d.\n", cpu);
7975 break;
8076 case 1:
81
- ret = cpu_up(cpu);
82
- if (!ret) {
83
- dev->offline = false;
84
- kobject_uevent(&dev->kobj, KOBJ_ONLINE);
85
- } else {
77
+ ret = add_cpu(cpu);
78
+ if (ret)
8679 pr_debug("Can't online CPU%d.\n", cpu);
87
- }
80
+
8881 break;
8982 default:
9083 ret = -EINVAL;
9184 }
92
-
93
- unlock_device_hotplug();
9485
9586 return ret;
9687 }