Re: [linux-pm] [PATCH, fix] Re: [Regression] 2.6.31-git: tty change broke resume from hibernation on MSI Wind U100

From: Rafael J. Wysocki
Date: Mon Sep 28 2009 - 16:19:25 EST


On Monday 28 September 2009, Alan Stern wrote:
> On Mon, 28 Sep 2009, Dave Young wrote:
>
> > On Mon, Sep 28, 2009 at 2:16 AM, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
> > > On Sunday 27 September 2009, Alan Stern wrote:
> > >> On Sun, 27 Sep 2009, Rafael J. Wysocki wrote:
> > >>
> > >> > Tested, works.
> > >> >
> > >> > Greg, could you please consider taking the patch below? Â It fixes a recent
> > >> > hibernation regression for me, so if not this one, another fix is necessary.
> > >>
> > >> This patch has a mistake.
> > >>
> > >> > Index: linux-2.6/drivers/usb/serial/usb-serial.c
> > >> > ===================================================================
> > >> > --- linux-2.6.orig/drivers/usb/serial/usb-serial.c
> > >> > +++ linux-2.6/drivers/usb/serial/usb-serial.c
> > >> > @@ -1210,7 +1210,7 @@ static const struct tty_operations seria
> > >> > Â Â .chars_in_buffer = Â Â Â serial_chars_in_buffer,
> > >> > Â Â .tiocmget = Â Â Â Â Â Â serial_tiocmget,
> > >> > Â Â .tiocmset = Â Â Â Â Â Â serial_tiocmset,
> > >> > - Â .shutdown = Â Â Â Â Â Â serial_release,
> > >> > + Â .cleanup = Â Â Â Â Â Â Â serial_release,
> > >> > Â Â .install = Â Â Â Â Â Â Â serial_install,
> > >> > Â Â .proc_fops = Â Â Â Â Â Â &serial_proc_fops,
> > >> > Â };
> > >>
> > >> It isn't enough to change the method pointer. Â The code in
> > >> serial_release() has to be changed too; it must not call tty_shutdown()
> > >> any more.
> > >
> > > Would it be sufficient to remove the tty_shutdown() call from
> > > serial_release()?
> >
> > I think so, because standard shutdown will be called in queue_release_one_tty.
> >
> > Alan, could you confirm about this? Thus I'd like to update the patch.
>
> Yes, that's right. Just remove the function call. But what happens if
> the device is a serial console? Shouldn't the call to tty_shutdown()
> be skipped in that case? (Eventually this won't matter; the console
> code will be straightened out so that we never release a serial console
> device. But for now it's important.)
>
> If you think it would be appropriate, you could also rename
> serial_release() to serial_cleanup() -- it's up to you.

The patch has been fixed up by Linus and merged as
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f278a2f7bbc2239f479eaf63d0b3ae573b1d746c

If any more fixes are necessary, they'll have to go on top of it.

Best,
Rafael
--
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/