diff options
Diffstat (limited to 'kernel/cpu.c')
| -rw-r--r-- | kernel/cpu.c | 8 | 
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/cpu.c b/kernel/cpu.c index 42bd331ee0a..f45657f1eb8 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c @@ -348,11 +348,13 @@ static int __cpuinit _cpu_up(unsigned int cpu, int tasks_frozen)  	unsigned long mod = tasks_frozen ? CPU_TASKS_FROZEN : 0;  	struct task_struct *idle; -	if (cpu_online(cpu) || !cpu_present(cpu)) -		return -EINVAL; -  	cpu_hotplug_begin(); +	if (cpu_online(cpu) || !cpu_present(cpu)) { +		ret = -EINVAL; +		goto out; +	} +  	idle = idle_thread_get(cpu);  	if (IS_ERR(idle)) {  		ret = PTR_ERR(idle);  |