Re: [PATCH] fix oops on resume from apm bios initiated suspend

From: mikpe (mikpe@csd.uu.se)
Date: Wed May 28 2003 - 08:19:18 EST


Pavel Machek writes:
> Hi!
>
> > Didn't know if you caught this one, but it fixes it for me and others
> > who responded on the list.
> >
> > mm is NULL for kernel threads without their own context. active_mm is
> > maintained the one we lazly switch from.
> >
> > Without this patch, apm bios initiated suspend events (eg panel close)
> > cause an oops on resume in the LDT restore, killing kapmd, which causes
> > further events to not be polled.
>
> Ouch, okay, this looks good. Andrew please apply.
>
> [I guess this is trivial enough for trivial patch monkey if andrew
> does not want to take it...]
> Pavel
>
> > ===== arch/i386/kernel/suspend.c 1.16 vs edited =====
> > --- 1.16/arch/i386/kernel/suspend.c Sat May 17 16:09:37 2003
> > +++ edited/arch/i386/kernel/suspend.c Sat May 24 05:00:02 2003
> > @@ -114,7 +114,7 @@
> > cpu_gdt_table[cpu][GDT_ENTRY_TSS].b &= 0xfffffdff;
> >
> > load_TR_desc(); /* This does ltr */
> > - load_LDT(&current->mm->context); /* This does lldt */
> > + load_LDT(&current->active_mm->context); /* This does lldt */

No one has still explained WHY kapmd's current->mm is NULL for some people,
while it obviously is non-NULL for many others. That worries me a lot more.
-
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/