diff options
Diffstat (limited to 'arch/x86/kernel/topology.c')
| -rw-r--r-- | arch/x86/kernel/topology.c | 11 | 
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/x86/kernel/topology.c b/arch/x86/kernel/topology.c index 6e60b5fe224..649b010da00 100644 --- a/arch/x86/kernel/topology.c +++ b/arch/x86/kernel/topology.c @@ -65,29 +65,32 @@ int __ref _debug_hotplug_cpu(int cpu, int action)  	if (!cpu_is_hotpluggable(cpu))  		return -EINVAL; -	cpu_hotplug_driver_lock(); +	lock_device_hotplug();  	switch (action) {  	case 0:  		ret = cpu_down(cpu);  		if (!ret) {  			pr_info("CPU %u is now offline\n", cpu); +			dev->offline = true;  			kobject_uevent(&dev->kobj, KOBJ_OFFLINE);  		} else  			pr_debug("Can't offline CPU%d.\n", cpu);  		break;  	case 1:  		ret = cpu_up(cpu); -		if (!ret) +		if (!ret) { +			dev->offline = false;  			kobject_uevent(&dev->kobj, KOBJ_ONLINE); -		else +		} else {  			pr_debug("Can't online CPU%d.\n", cpu); +		}  		break;  	default:  		ret = -EINVAL;  	} -	cpu_hotplug_driver_unlock(); +	unlock_device_hotplug();  	return ret;  }  | 
