Commit 1c7a6213 authored by Stefano Stabellini's avatar Stefano Stabellini Committed by David Vrabel

xen, cpu_hotplug: call device_offline instead of cpu_down

When offlining a cpu, instead of cpu_down, call device_offline, which
also takes care of updating the cpu.dev.offline field. This keeps the
sysfs file /sys/devices/system/cpu/cpuN/online, up to date.  Also move
the call to disable_hotplug_cpu, because it makes more sense to have it
there.

We don't call device_online at cpu-hotplug time, because that would
immediately take the cpu online, while we want to retain the current
behaviour: the user needs to explicitly enable the cpu after it has
been hotplugged.
Signed-off-by: default avatarStefano Stabellini <stefano.stabellini@eu.citrix.com>
Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
CC: konrad.wilk@oracle.com
CC: boris.ostrovsky@oracle.com
CC: david.vrabel@citrix.com
parent a314e3eb
...@@ -18,6 +18,11 @@ static void enable_hotplug_cpu(int cpu) ...@@ -18,6 +18,11 @@ static void enable_hotplug_cpu(int cpu)
static void disable_hotplug_cpu(int cpu) static void disable_hotplug_cpu(int cpu)
{ {
if (cpu_online(cpu)) {
lock_device_hotplug();
device_offline(get_cpu_device(cpu));
unlock_device_hotplug();
}
if (cpu_present(cpu)) if (cpu_present(cpu))
xen_arch_unregister_cpu(cpu); xen_arch_unregister_cpu(cpu);
...@@ -55,7 +60,6 @@ static void vcpu_hotplug(unsigned int cpu) ...@@ -55,7 +60,6 @@ static void vcpu_hotplug(unsigned int cpu)
enable_hotplug_cpu(cpu); enable_hotplug_cpu(cpu);
break; break;
case 0: case 0:
(void)cpu_down(cpu);
disable_hotplug_cpu(cpu); disable_hotplug_cpu(cpu);
break; break;
default: default:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment