summaryrefslogtreecommitdiffstats
path: root/drivers/xen/cpu_hotplug.c
diff options
context:
space:
mode:
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>2015-10-22 18:21:46 +0200
committerDavid Vrabel <david.vrabel@citrix.com>2015-10-23 15:20:48 +0200
commit1c7a62137bb23bc8a2c05d1dad6105afa569b20e (patch)
treea17571adf4865159b9319d0919757d1b9aed06ab /drivers/xen/cpu_hotplug.c
parentxen/arm: Enable cpu_hotplug.c (diff)
downloadlinux-1c7a62137bb23bc8a2c05d1dad6105afa569b20e.tar.xz
linux-1c7a62137bb23bc8a2c05d1dad6105afa569b20e.zip
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: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> CC: konrad.wilk@oracle.com CC: boris.ostrovsky@oracle.com CC: david.vrabel@citrix.com
Diffstat (limited to 'drivers/xen/cpu_hotplug.c')
-rw-r--r--drivers/xen/cpu_hotplug.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/xen/cpu_hotplug.c b/drivers/xen/cpu_hotplug.c
index 43de1f51b53f..5676aefdf2bc 100644
--- a/drivers/xen/cpu_hotplug.c
+++ b/drivers/xen/cpu_hotplug.c
@@ -18,6 +18,11 @@ static void enable_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))
xen_arch_unregister_cpu(cpu);
@@ -55,7 +60,6 @@ static void vcpu_hotplug(unsigned int cpu)
enable_hotplug_cpu(cpu);
break;
case 0:
- (void)cpu_down(cpu);
disable_hotplug_cpu(cpu);
break;
default: