Since commit 957dacae ("TTY: fix DTR not being dropped on hang up")
dtr_rts is no longer called for uninitialised ports (e.g. after
a disconnect), which removes the need to grab the disconnect mutex.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Johan Hovold 2013-06-26 16:47:22 +02:00 коммит произвёл Greg Kroah-Hartman
Родитель 91c4211c39
Коммит f5f4530451
1 изменённых файлов: 2 добавлений и 12 удалений

Просмотреть файл

@ -681,20 +681,10 @@ static int serial_port_carrier_raised(struct tty_port *port)
static void serial_port_dtr_rts(struct tty_port *port, int on)
{
struct usb_serial_port *p = container_of(port, struct usb_serial_port, port);
struct usb_serial *serial = p->serial;
struct usb_serial_driver *drv = serial->type;
struct usb_serial_driver *drv = p->serial->type;
if (!drv->dtr_rts)
return;
/*
* Work-around bug in the tty-layer which can result in dtr_rts
* being called after a disconnect (and tty_unregister_device
* has returned). Remove once bug has been squashed.
*/
mutex_lock(&serial->disc_mutex);
if (!serial->disconnected)
if (drv->dtr_rts)
drv->dtr_rts(p, on);
mutex_unlock(&serial->disc_mutex);
}
static const struct tty_port_operations serial_port_ops = {