summaryrefslogtreecommitdiffstats
path: root/drivers/xen
diff options
context:
space:
mode:
authorStefano Stabellini <stefano.stabellini@eu.citrix.com>2015-10-22 16:21:46 +0000
committerDavid Vrabel <david.vrabel@citrix.com>2015-10-23 14:20:48 +0100
commit1c7a62137bb23bc8a2c05d1dad6105afa569b20e (patch)
treea17571adf4865159b9319d0919757d1b9aed06ab /drivers/xen
parenta314e3eb845389b8f68130c79a63832229dea87b (diff)
downloadlinux-stable-1c7a62137bb23bc8a2c05d1dad6105afa569b20e.tar.gz
linux-stable-1c7a62137bb23bc8a2c05d1dad6105afa569b20e.tar.bz2
linux-stable-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')
-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: