Messages in this thread Patch in this message | | | Date | Fri, 10 Jan 2020 11:08:17 +0100 | From | Johan Hovold <> | Subject | Re: [PATCH] tty: always relink the port |
| |
On Fri, Dec 27, 2019 at 05:44:34PM +0000, Sudip Mukherjee wrote: > If the serial device is disconnected and reconnected, it re-enumerates > properly but does not link it. fwiw, linking means just saving the port > index, so allow it always as there is no harm in saving the same value > again even if it tries to relink with the same port.
This is a pretty vague description. Commit fb2b90014d78 ("tty: link tty and port before configuring it as console") completely broke usb-serial (and anything else hotpluggable) which obviously depends on being able to reuse a minor number when a new device is later plugged in after a disconnect.
Things are crashing left and right due to that stale port-pointer, and I just had to debug this only to find that this one is sitting in the tty-linus branch. I know, I know, Christmas and all, but would be nice to get it into -rc6. :)
> Fixes: fb2b90014d78 ("tty: link tty and port before configuring it as console")
Also note that the offending commit had a stable tag unlike this one.
> Reported-by: Kenneth R. Crudup <kenny@panix.com> > Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com> > --- > drivers/tty/tty_port.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c > index 5023c85ebc6e..044c3cbdcfa4 100644 > --- a/drivers/tty/tty_port.c > +++ b/drivers/tty/tty_port.c > @@ -89,8 +89,7 @@ void tty_port_link_device(struct tty_port *port, > { > if (WARN_ON(index >= driver->num)) > return; > - if (!driver->ports[index]) > - driver->ports[index] = port; > + driver->ports[index] = port; > } > EXPORT_SYMBOL_GPL(tty_port_link_device);
Johan
| |