Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2ee44fbe authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman
Browse files

USB: metro-usb: fix io after disconnect



Make sure no control urb is submitted during close after a disconnect by
checking the disconnected flag.

Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarJohan Hovold <jhovold@gmail.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 50dde868
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -179,16 +179,13 @@ static void metrousb_cleanup(struct usb_serial_port *port)
{
	dev_dbg(&port->dev, "%s\n", __func__);

	if (port->serial->dev) {
		/* Shutdown any interrupt in urbs. */
		if (port->interrupt_in_urb) {
	usb_unlink_urb(port->interrupt_in_urb);
	usb_kill_urb(port->interrupt_in_urb);
		}

		/* Send deactivate cmd to device */
	mutex_lock(&port->serial->disc_mutex);
	if (!port->serial->disconnected)
		metrousb_send_unidirectional_cmd(UNI_CMD_CLOSE, port);
	}
	mutex_unlock(&port->serial->disc_mutex);
}

static int metrousb_open(struct tty_struct *tty, struct usb_serial_port *port)