summaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial
diff options
context:
space:
mode:
authorJohan Hovold <jhovold@gmail.com>2013-03-21 12:36:46 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-03-25 21:48:27 +0100
commita4a83100a1653a389a5efaa68ad32c9b89010910 (patch)
treebc591f17ac0f3618c156224b8067fc443e105c1b /drivers/usb/serial
parentUSB: cyberjack: fix disconnect handling (diff)
downloadlinux-a4a83100a1653a389a5efaa68ad32c9b89010910.tar.xz
linux-a4a83100a1653a389a5efaa68ad32c9b89010910.zip
USB: serial: fix port release
We should not call kill_traffic (and usb_kill_urb) once disconnect returns. Any pending urbs are killed at disconnect and new submissions are prevented by usb_unbind_interface (and usb_disable_interface). Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/serial')
-rw-r--r--drivers/usb/serial/usb-serial.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index 3eb4d06e49be..456792952db6 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -572,13 +572,6 @@ static void port_release(struct device *dev)
dev_dbg(dev, "%s\n", __func__);
- /*
- * Stop all the traffic before cancelling the work, so that
- * nobody will restart it by calling usb_serial_port_softint.
- */
- kill_traffic(port);
- cancel_work_sync(&port->work);
-
usb_free_urb(port->interrupt_in_urb);
usb_free_urb(port->interrupt_out_urb);
for (i = 0; i < ARRAY_SIZE(port->read_urbs); ++i) {