Messages in this thread Patch in this message | | | From | "Rafael J. Wysocki" <> | Subject | Re: [4/5] 2.6.21-rc5: known regressions | Date | Tue, 27 Mar 2007 12:09:13 +0200 |
| |
On Tuesday, 27 March 2007 03:59, Adrian Bunk wrote: > This email lists some known regressions in Linus' tree compared to 2.6.20. > > If you find your name in the Cc header, you are either submitter of one > of the bugs, maintainer of an affectected subsystem or driver, a patch > of you caused a breakage or I'm considering you in any other way > possibly involved with one or more of these issues. > > Due to the huge amount of recipients, please trim the Cc when answering.
I think the following two:
> Subject : suspend to disk: keypress required for power down > References : http://lkml.org/lkml/2007/3/25/78 > Submitter : Thomas Meyer <thomas@m3y3r.de> > Status : unknown
> Subject : suspend to disk: non-boot cpus are disabled again > References : http://lkml.org/lkml/2007/3/25/78 > Submitter : Thomas Meyer <thomas@m3y3r.de> > Handled-By : Rafael J. Wysocki <rjw@sisk.pl> > Eric W. Biederman <ebiederm@xmission.com> > Status : problem is being debugged
are related to the same issue.
The problem is that we call disable_nonboot_cpus() in swsusp before powering down the system in order to avoid triggering the WARN_ON() in arch/x86_64/kernel/acpi/sleep.c:init_low_mapping() and this doesn't work well on Thomas' system.
Since the problem has been introduced by commit 94985134b7b46848267ed6b734320db01c974e72 (swsusp: disable nonboot CPUs before entering platform suspend), I think it's better to revert this commit and remove the the WARN_ON() in arch/x86_64/kernel/acpi/sleep.c:init_low_mapping() (appended is a patch that removes the WARN_ON()).
Greetings, Rafael
--- Remove the WARN_ON() in arch/x86_64/kernel/acpi/sleep.c:init_low_mapping(), which triggers every time during the suspend to disk in the platform mode, as the potential problem it is related to doesn't seem to occur in practice.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> --- arch/x86_64/kernel/acpi/sleep.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
Index: linux-2.6.21-rc5/arch/x86_64/kernel/acpi/sleep.c =================================================================== --- linux-2.6.21-rc5.orig/arch/x86_64/kernel/acpi/sleep.c +++ linux-2.6.21-rc5/arch/x86_64/kernel/acpi/sleep.c @@ -66,8 +66,10 @@ static void init_low_mapping(void) { pgd_t *slot0 = pgd_offset(current->mm, 0UL); low_ptr = *slot0; + /* FIXME: We're playing with the current task's page tables here, which + * is potentially dangerous on SMP systems. + */ set_pgd(slot0, *pgd_offset(current->mm, PAGE_OFFSET)); - WARN_ON(num_online_cpus() != 1); local_flush_tlb(); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |