diff options
| author | Anton Altaparmakov <aia21@cantab.net> | 2005-06-26 22:19:40 +0100 | 
|---|---|---|
| committer | Anton Altaparmakov <aia21@cantab.net> | 2005-06-26 22:19:40 +0100 | 
| commit | 2a322e4c08be4e7cb0c04b427ddaaa679fd88863 (patch) | |
| tree | ad8cc17bfd3b5e57e36f07a249028667d72f0b96 /kernel/power/main.c | |
| parent | ba6d2377c85c9b8a793f455d8c9b6cf31985d70f (diff) | |
| parent | 8678887e7fb43cd6c9be6c9807b05e77848e0920 (diff) | |
Automatic merge with /usr/src/ntfs-2.6.git.
Diffstat (limited to 'kernel/power/main.c')
| -rw-r--r-- | kernel/power/main.c | 16 | 
1 files changed, 10 insertions, 6 deletions
diff --git a/kernel/power/main.c b/kernel/power/main.c index 4cdebc972ff2..c94cb9e95090 100644 --- a/kernel/power/main.c +++ b/kernel/power/main.c @@ -55,6 +55,13 @@ static int suspend_prepare(suspend_state_t state)  	pm_prepare_console(); +	disable_nonboot_cpus(); + +	if (num_online_cpus() != 1) { +		error = -EPERM; +		goto Enable_cpu; +	} +  	if (freeze_processes()) {  		error = -EAGAIN;  		goto Thaw; @@ -75,6 +82,8 @@ static int suspend_prepare(suspend_state_t state)  		pm_ops->finish(state);   Thaw:  	thaw_processes(); + Enable_cpu: +	enable_nonboot_cpus();  	pm_restore_console();  	return error;  } @@ -113,6 +122,7 @@ static void suspend_finish(suspend_state_t state)  	if (pm_ops && pm_ops->finish)  		pm_ops->finish(state);  	thaw_processes(); +	enable_nonboot_cpus();  	pm_restore_console();  } @@ -150,12 +160,6 @@ static int enter_state(suspend_state_t state)  		goto Unlock;  	} -	/* Suspend is hard to get right on SMP. */ -	if (num_online_cpus() != 1) { -		error = -EPERM; -		goto Unlock; -	} -  	pr_debug("PM: Preparing system for %s sleep\n", pm_states[state]);  	if ((error = suspend_prepare(state)))  		goto Unlock;  | 
