[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <200705091345.55207.rjw@sisk.pl>
Date: Wed, 9 May 2007 13:45:54 +0200
From: "Rafael J. Wysocki" <rjw@...k.pl>
To: tglx@...utronix.de, Andrew Morton <akpm@...ux-foundation.org>
Cc: Ingo Molnar <mingo@...e.hu>, LKML <linux-kernel@...r.kernel.org>,
John Stultz <johnstul@...ibm.com>, linux-acpi@...r.kernel.org
Subject: Re: [patch 3/3] clockevents: Fix resume logic - updated version
On Wednesday, 9 May 2007 10:59, Thomas Gleixner wrote:
> On Wed, 2007-05-09 at 01:31 -0700, Andrew Morton wrote:
> > > I suspect I just tested the wrong thing yesterday. Let me recheck just
> > > these patches against 2.6.21.
> >
> > yup, same hang with just these three:
> >
> > origin
> > clocksource-fix-resume-logic
> > clockevents-fix-resume-logic-updated-version
>
> I have no idea, how this affects acpi_evaluate_object()
I think the problem is that the ACPI code ordering here is broken in a
difficult to fix way.
Definitely, we shouldn't execute the _BFS method after creating the image
and most probably _WAK shouldn't be executed here either. Moreover,
acpi_leave_sleep_state() enables the runtime GPEs, which AFAICS
is equivalent to allowing ACPI to generate SCIs. I'm not sure if this is a
good idea to do such a thing in this particular place.
Andrew, could you please apply the appended patch and see if that
helps (should apply to -mm2)?
Rafael
---
NOTE: This is not a complete solution, because it removes the enabling of GPEs
from the resume-during-hibernation code path entirely, which probbably is not a
good idea in general.
---
kernel/power/disk.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: linux-2.6.21/kernel/power/disk.c
===================================================================
--- linux-2.6.21.orig/kernel/power/disk.c
+++ linux-2.6.21/kernel/power/disk.c
@@ -131,7 +131,9 @@ int hibernation_snapshot(int platform_mo
}
enable_nonboot_cpus();
Resume_devices:
- platform_finish(platform_mode);
+ if (!in_suspend || error)
+ platform_finish(platform_mode);
+
device_resume();
resume_console();
Finish:
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists