Re: [PATCH 16/23] swpsuspend: Have suspend to disk use factors ofsys_reboot

From: Andrew Morton
Date: Tue Jul 26 2005 - 15:57:52 EST


ebiederm@xxxxxxxxxxxx (Eric W. Biederman) wrote:
>
>
> The suspend to disk code was a poor copy of the code in
> sys_reboot now that we have kernel_power_off, kernel_restart
> and kernel_halt use them instead of poorly duplicating them inline.
>
> Signed-off-by: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
> ---
>
> kernel/power/disk.c | 9 +++------
> 1 files changed, 3 insertions(+), 6 deletions(-)
>
> 78a2f83d732e327874fe73728d5667875dfeea46
> diff --git a/kernel/power/disk.c b/kernel/power/disk.c
> --- a/kernel/power/disk.c
> +++ b/kernel/power/disk.c
> @@ -59,16 +59,13 @@ static void power_down(suspend_disk_meth
> error = pm_ops->enter(PM_SUSPEND_DISK);
> break;
> case PM_DISK_SHUTDOWN:
> - printk("Powering off system\n");
> - device_shutdown();
> - machine_power_off();
> + kernel_power_off();
> break;
> case PM_DISK_REBOOT:
> - device_shutdown();
> - machine_restart(NULL);
> + kernel_restart(NULL);
> break;
> }
> - machine_halt();
> + kernel_halt();
> /* Valid image is on the disk, if we continue we risk serious data corruption
> after resume. */
> printk(KERN_CRIT "Please power me down manually\n");

This one conflicts in both implementation and intent with the below, from Pavel. I'll
drop Pavel's patch.


From: Pavel Machek <pavel@xxxxxx>

Do not call device_shutdown with interrupts disabled. It is wrong and
produces ugly warnings.

Signed-off-by: Pavel Machek <pavel@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

kernel/power/disk.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff -puN kernel/power/disk.c~call-device_shutdown-with-interrupts-enabled kernel/power/disk.c
--- devel/kernel/power/disk.c~call-device_shutdown-with-interrupts-enabled 2005-07-08 23:11:23.000000000 -0700
+++ devel-akpm/kernel/power/disk.c 2005-07-08 23:11:23.000000000 -0700
@@ -52,19 +52,21 @@ static void power_down(suspend_disk_meth
unsigned long flags;
int error = 0;

- local_irq_save(flags);
switch(mode) {
case PM_DISK_PLATFORM:
- device_shutdown();
+ device_shutdown();
+ local_irq_save(flags);
error = pm_ops->enter(PM_SUSPEND_DISK);
break;
case PM_DISK_SHUTDOWN:
printk("Powering off system\n");
device_shutdown();
+ local_irq_save(flags);
machine_power_off();
break;
case PM_DISK_REBOOT:
device_shutdown();
+ local_irq_save(flags);
machine_restart(NULL);
break;
}
_
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/