[pm] Make software resume be called at resume

[pm] Make software resume be called at resume

Post by Patrick Mo » Wed, 01 Oct 2003 02:10:08



Random bit flips? I have no idea what you're talking about.


Please remove this. I want as little correlation between my name and
swsusp as possible.


For crying out loud, why? WTF is wrong with:


printk("Architecture failed to prepare\n");
return;

? Why do that to your users?



Pat

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to XXXX@XXXXX.COM
More majordomo info at http://www.yqcomputer.com/
Please read the FAQ at http://www.yqcomputer.com/
 
 
 

[pm] Make software resume be called at resume

Post by Pavel Mach » Wed, 01 Oct 2003 04:50:12

i!


If cpu does not support big pagetables, then, during resume,
pagetables are all around the memory and hardware is setting
"accessed" bits in them. Very bad stuff might happen.


There are some comments I took from your code, and you have copyright
on them. (I plan to take more of your code.) If you want me not to add
copyright notice next time I copy your code, please say so.


This is changed rather easily...

Pavel

--- clean/kernel/power/swsusp.c 2003-09-28 22:06:45.000000000 +0200
+++ linux/kernel/power/swsusp.c 2003-09-29 21:39:21.000000000 +0200
@@ -5,7 +5,9 @@
* machine suspend feature using pretty near only high-level routines
*
* Copyright (C) 1998-2001 Gabor Kuti < XXXX@XXXXX.COM >
- * Copyright (C) 1998,2001,2002 Pavel Machek < XXXX@XXXXX.COM >
+ * Copyright (C) 1998,2001-2003 Pavel Machek < XXXX@XXXXX.COM >
+ *
+ * This file is released under the GPLv2.
*
* I'd like to thank the following people for their work:
*
@@ -681,7 +678,10 @@

static void do_software_suspend(void)
{
- arch_prepare_suspend();
+ if (arch_prepare_suspend()) {
+ printk("%sArchitecture failed to prepare\n", name_suspend);
+ return;
+ }
if (pm_prepare_console())
printk( "%sCan't allocate a console... proceeding\n", name_suspend);
if (!prepare_suspend_processes()) {
@@ -1031,12 +1031,18 @@
return error;
}

-/*
- * Called from init kernel_thread.
- * We check if we have an image and if so we try to resume
+/**
+ * software_resume - Resume from a saved image.
+ *
+ * Called as a late_initcall (so all devices are discovered and
+ * initialized), we call swsusp to see if we have a saved image or not.
+ * If so, we quiesce devices, then restore the saved image. We will
+ * return above (in pm_suspend_disk() ) if everything goes well.
+ * Otherwise, we fail gracefully and return to the normally
+ * scheduled program.
+ *
*/
-
-void software_resume(void)
+static void software_resume(void)
{
if (num_online_cpus() > 1) {
printk(KERN_WARNING "Software Suspend has malfunctioning SMP support. Disabled :(\n");
@@ -1075,6 +1081,8 @@
return;
}

+late_initcall(software_resume);
+
static int __init resume_setup(char *str)
{
if (resume_status == NORESUME)



--
When do you have a heart between your knees?
[Johanka's followup: and *two* hearts?]
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to XXXX@XXXXX.COM
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/