On Wed, Dec 08, 2010 at 07:24:46AM +0100, Jiri Slaby wrote: > On 12/08/2010 01:43 AM, Greg KH wrote: > > 2.6.32-stable review patch. If anyone has any objections, please let us > > know. > > > > ------------------ > > > > From: Jiri Slaby <[email protected]> > > > > commit 7f90cfc505d613f4faf096e0d84ffe99208057d9 upstream. > > > > When a concrete ldisc open fails in tty_ldisc_open, we forget to clear > > TTY_LDISC_OPEN. This causes a false warning on the next ldisc open: > > WARNING: at drivers/char/tty_ldisc.c:445 tty_ldisc_open+0x26/0x38() > > Hardware name: System Product Name > > Modules linked in: ... > > Pid: 5251, comm: a.out Tainted: G W 2.6.32-5-686 #1 > > Call Trace: > > [<c1030321>] ? warn_slowpath_common+0x5e/0x8a > > [<c1030357>] ? warn_slowpath_null+0xa/0xc > > [<c119311c>] ? tty_ldisc_open+0x26/0x38 > > [<c11936c5>] ? tty_set_ldisc+0x218/0x304 > > ... > > > > So clear the bit when failing... > > > > Introduced in c65c9bc3efa (tty: rewrite the ldisc locking) back in > > 2.6.31-rc1. > > > > Signed-off-by: Jiri Slaby <[email protected]> > > Cc: Alan Cox <[email protected]> > > Reported-by: Sergey Lapin <[email protected]> > > Tested-by: Sergey Lapin <[email protected]> > > Signed-off-by: Greg Kroah-Hartman <[email protected]> > > > > --- > > drivers/char/tty_ldisc.c | 9 +++++++-- > > 1 file changed, 7 insertions(+), 2 deletions(-) > > > > --- a/drivers/char/tty_ldisc.c > > +++ b/drivers/char/tty_ldisc.c > > @@ -444,9 +444,14 @@ static void tty_set_termios_ldisc(struct > > > > static int tty_ldisc_open(struct tty_struct *tty, struct tty_ldisc *ld) > > { > > + int ret; > > + > > WARN_ON(test_and_set_bit(TTY_LDISC_OPEN, &tty->flags)); > > - if (ld->ops->open) > > - return ld->ops->open(tty); > > + if (ld->ops->open) { > > + ret = ld->ops->open(tty); > > + if (ret) > > + clear_bit(TTY_LDISC_OPEN, &tty->flags); > > + } > > return 0; > > Whoops, this should write return ret; (with int ret = 0;) > > Do you want me to send the patch against rebased on .32?
No, send it based on Linus's tree as it's wrong there, right? Then it will move through to the stable kernels. thanks, greg k-h _______________________________________________ stable mailing list [email protected] http://linux.kernel.org/mailman/listinfo/stable
