Re: 2.6.31-rc5 regression: Oops when USB Serial disconnected whilein use

From: Alan Stern
Date: Sat Aug 22 2009 - 22:51:35 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/