diff options
author | Rafael J. Wysocki <rjw@sisk.pl> | 2007-03-16 17:38:06 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-03-16 22:25:03 -0400 |
commit | 94985134b7b46848267ed6b734320db01c974e72 (patch) | |
tree | 2ed8e5fd6c94a50b4dfb4c899305af04f2e3094d | |
parent | 886c5952950ffed0e8ca3eb9efdc2728bfc144d3 (diff) |
[PATCH] swsusp: disable nonboot CPUs before entering platform suspend
Prevent the WARN_ON() in arch/x86_64/kernel/acpi/sleep.c:init_low_mapping()
from triggering by disabling nonboot CPUs before we finally enter the
platform suspend.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | kernel/power/disk.c | 1 | ||||
-rw-r--r-- | kernel/power/user.c | 3 |
2 files changed, 3 insertions, 1 deletions
diff --git a/kernel/power/disk.c b/kernel/power/disk.c index a200c5fc42ee..873cdf8ea5a4 100644 --- a/kernel/power/disk.c +++ b/kernel/power/disk.c | |||
@@ -58,6 +58,7 @@ static inline int platform_prepare(void) | |||
58 | 58 | ||
59 | static void power_down(suspend_disk_method_t mode) | 59 | static void power_down(suspend_disk_method_t mode) |
60 | { | 60 | { |
61 | disable_nonboot_cpus(); | ||
61 | switch(mode) { | 62 | switch(mode) { |
62 | case PM_DISK_PLATFORM: | 63 | case PM_DISK_PLATFORM: |
63 | if (pm_ops && pm_ops->enter) { | 64 | if (pm_ops && pm_ops->enter) { |
diff --git a/kernel/power/user.c b/kernel/power/user.c index dd09efe7df54..d6a8dcc26ae5 100644 --- a/kernel/power/user.c +++ b/kernel/power/user.c | |||
@@ -398,9 +398,10 @@ static int snapshot_ioctl(struct inode *inode, struct file *filp, | |||
398 | 398 | ||
399 | case PMOPS_ENTER: | 399 | case PMOPS_ENTER: |
400 | if (data->platform_suspend) { | 400 | if (data->platform_suspend) { |
401 | disable_nonboot_cpus(); | ||
401 | kernel_shutdown_prepare(SYSTEM_SUSPEND_DISK); | 402 | kernel_shutdown_prepare(SYSTEM_SUSPEND_DISK); |
402 | error = pm_ops->enter(PM_SUSPEND_DISK); | 403 | error = pm_ops->enter(PM_SUSPEND_DISK); |
403 | error = 0; | 404 | enable_nonboot_cpus(); |
404 | } | 405 | } |
405 | break; | 406 | break; |
406 | 407 | ||