swsusp: fix highmem

From: Pavel Machek
Date: Tue Aug 17 2004 - 06:09:25 EST


Hi!

This actually calls highmem_resume(), so swsusp has chance to work on
highmem machines. It also adds comments about code flow, which is
quite interesting at that point.

Please apply,
Pavel

--- clean-mm/kernel/power/swsusp.c 2004-08-17 12:21:44.000000000 +0200
+++ linux-mm/kernel/power/swsusp.c 2004-08-17 13:01:35.000000000 +0200
@@ -854,8 +854,10 @@
local_irq_disable();
save_processor_state();
error = swsusp_arch_suspend();
+ /* Restore control flow magically appears here */
restore_processor_state();
local_irq_enable();
+ restore_highmem();
return error;
}

@@ -874,8 +876,13 @@
{
int error;
local_irq_disable();
+ /* We'll ignore saved state, but this gets preempt count (etc) right */
save_processor_state();
error = swsusp_arch_resume();
+ /* Code below is only ever reached in case of failure. Otherwise
+ * execution continues at place where swsusp_arch_suspend was called
+ */
+ BUG_ON(!error);
restore_processor_state();
restore_highmem();
local_irq_enable();


--
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
-
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/