diff options
author | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2015-10-22 16:21:46 +0000 |
---|---|---|
committer | David Vrabel <david.vrabel@citrix.com> | 2015-10-23 14:20:48 +0100 |
commit | 1c7a62137bb23bc8a2c05d1dad6105afa569b20e (patch) | |
tree | a17571adf4865159b9319d0919757d1b9aed06ab /drivers/xen | |
parent | a314e3eb845389b8f68130c79a63832229dea87b (diff) | |
download | linux-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.c | 6 |
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: |