diff options
Diffstat (limited to 'kernel/power')
-rw-r--r-- | kernel/power/disk.c | 9 | ||||
-rw-r--r-- | kernel/power/poweroff.c | 4 | ||||
-rw-r--r-- | kernel/power/smp.c | 2 |
3 files changed, 6 insertions, 9 deletions
diff --git a/kernel/power/disk.c b/kernel/power/disk.c index 3ec789c6b537..664eb0469b6e 100644 --- a/kernel/power/disk.c +++ b/kernel/power/disk.c | |||
@@ -59,16 +59,13 @@ static void power_down(suspend_disk_method_t mode) | |||
59 | error = pm_ops->enter(PM_SUSPEND_DISK); | 59 | error = pm_ops->enter(PM_SUSPEND_DISK); |
60 | break; | 60 | break; |
61 | case PM_DISK_SHUTDOWN: | 61 | case PM_DISK_SHUTDOWN: |
62 | printk("Powering off system\n"); | 62 | kernel_power_off(); |
63 | device_shutdown(); | ||
64 | machine_power_off(); | ||
65 | break; | 63 | break; |
66 | case PM_DISK_REBOOT: | 64 | case PM_DISK_REBOOT: |
67 | device_shutdown(); | 65 | kernel_restart(NULL); |
68 | machine_restart(NULL); | ||
69 | break; | 66 | break; |
70 | } | 67 | } |
71 | machine_halt(); | 68 | kernel_halt(); |
72 | /* Valid image is on the disk, if we continue we risk serious data corruption | 69 | /* Valid image is on the disk, if we continue we risk serious data corruption |
73 | after resume. */ | 70 | after resume. */ |
74 | printk(KERN_CRIT "Please power me down manually\n"); | 71 | printk(KERN_CRIT "Please power me down manually\n"); |
diff --git a/kernel/power/poweroff.c b/kernel/power/poweroff.c index 715081b2d829..7a4144ba3afd 100644 --- a/kernel/power/poweroff.c +++ b/kernel/power/poweroff.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <linux/init.h> | 9 | #include <linux/init.h> |
10 | #include <linux/pm.h> | 10 | #include <linux/pm.h> |
11 | #include <linux/workqueue.h> | 11 | #include <linux/workqueue.h> |
12 | #include <linux/reboot.h> | ||
12 | 13 | ||
13 | /* | 14 | /* |
14 | * When the user hits Sys-Rq o to power down the machine this is the | 15 | * When the user hits Sys-Rq o to power down the machine this is the |
@@ -17,8 +18,7 @@ | |||
17 | 18 | ||
18 | static void do_poweroff(void *dummy) | 19 | static void do_poweroff(void *dummy) |
19 | { | 20 | { |
20 | if (pm_power_off) | 21 | kernel_power_off(); |
21 | pm_power_off(); | ||
22 | } | 22 | } |
23 | 23 | ||
24 | static DECLARE_WORK(poweroff_work, do_poweroff, NULL); | 24 | static DECLARE_WORK(poweroff_work, do_poweroff, NULL); |
diff --git a/kernel/power/smp.c b/kernel/power/smp.c index bbe23079c62c..911fc62b8225 100644 --- a/kernel/power/smp.c +++ b/kernel/power/smp.c | |||
@@ -38,7 +38,7 @@ void disable_nonboot_cpus(void) | |||
38 | } | 38 | } |
39 | printk("Error taking cpu %d down: %d\n", cpu, error); | 39 | printk("Error taking cpu %d down: %d\n", cpu, error); |
40 | } | 40 | } |
41 | BUG_ON(smp_processor_id() != 0); | 41 | BUG_ON(raw_smp_processor_id() != 0); |
42 | if (error) | 42 | if (error) |
43 | panic("cpus not sleeping"); | 43 | panic("cpus not sleeping"); |
44 | } | 44 | } |