From: "Barry K. Nathan" During resume, my previous patch switches over to the saved swsusp image without suspending all devices first. This patch fixes that oversight, so that the state of the hardware upon resume more closely matches the state it had at suspend time. While my previous patch alone seemed to work fine in my testing, it is not fully correct without this as well. Signed-off-by: Barry K. Nathan Acked-by: Pavel Machek Signed-off-by: Andrew Morton --- 25-akpm/kernel/power/swsusp.c | 2 ++ 1 files changed, 2 insertions(+) diff -puN kernel/power/swsusp.c~swsusp-properly-suspend-and-resume-all-devices kernel/power/swsusp.c --- 25/kernel/power/swsusp.c~swsusp-properly-suspend-and-resume-all-devices 2005-01-10 17:29:25.637989352 -0800 +++ 25-akpm/kernel/power/swsusp.c 2005-01-10 17:29:25.641988744 -0800 @@ -878,6 +878,7 @@ int swsusp_resume(void) { int error; local_irq_disable(); + device_power_down(PM_SUSPEND_DISK); /* We'll ignore saved state, but this gets preempt count (etc) right */ save_processor_state(); error = swsusp_arch_resume(); @@ -887,6 +888,7 @@ int swsusp_resume(void) BUG_ON(!error); restore_processor_state(); restore_highmem(); + device_power_up(); local_irq_enable(); return error; } _