[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.44L0.0908222236100.11562-100000@netrider.rowland.org>
Date: Sat, 22 Aug 2009 22:51:27 -0400 (EDT)
From: Alan Stern <stern@...land.harvard.edu>
To: Alan Cox <alan@...rguk.ukuu.org.uk>
cc: Bruno Prémont <bonbons@...ux-vserver.org>,
Greg KH <greg@...ah.com>,
Kernel development list <linux-kernel@...r.kernel.org>,
USB list <linux-usb@...r.kernel.org>,
"Rafael J. Wysocki" <rjw@...k.pl>
Subject: Re: 2.6.31-rc5 regression: Oops when USB Serial disconnected while
in use
Alan:
There's a problem with the tty->ops->shutdown method. It needs to
release the last port reference owned by the current tty. But when was
that reference originally acquired? Evidently during the first time
serial_open() was called for the current tty.
The problem is that serial_open() has no way to know if a particular
invocation is the first one for this tty! The ASYNCB_INITIALIZED flag
doesn't help, because it might not get set during the first call (i.e.,
if an error occurs).
To do this right, we need a flag in the tty_struct or the tty_port
which serial_open() can set when acquiring that first reference and
shutdown method can clear. Should I add such a flag?
Alan Stern
--
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