diff options
Diffstat (limited to 'kernel/stop_machine.c')
| -rw-r--r-- | kernel/stop_machine.c | 7 | 
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/stop_machine.c b/kernel/stop_machine.c index 0101aeef7ed..b7350bbfb07 100644 --- a/kernel/stop_machine.c +++ b/kernel/stop_machine.c @@ -62,8 +62,7 @@ static int stopmachine(void *cpu)  		 * help our sisters onto their CPUs. */  		if (!prepared && !irqs_disabled)  			yield(); -		else -			cpu_relax(); +		cpu_relax();  	}  	/* Ack: we are exiting. */ @@ -106,8 +105,10 @@ static int stop_machine(void)  	}  	/* Wait for them all to come to life. */ -	while (atomic_read(&stopmachine_thread_ack) != stopmachine_num_threads) +	while (atomic_read(&stopmachine_thread_ack) != stopmachine_num_threads) {  		yield(); +		cpu_relax(); +	}  	/* If some failed, kill them all. */  	if (ret < 0) {  |