|
@@ -520,12 +520,14 @@ static void mct_u232_dtr_rts(struct usb_serial_port *port, int on)
|
|
|
|
|
|
static void mct_u232_close(struct usb_serial_port *port)
|
|
|
{
|
|
|
- if (port->serial->dev) {
|
|
|
- /* shutdown our urbs */
|
|
|
- usb_kill_urb(port->write_urb);
|
|
|
- usb_kill_urb(port->read_urb);
|
|
|
- usb_kill_urb(port->interrupt_in_urb);
|
|
|
- }
|
|
|
+ /*
|
|
|
+ * Must kill the read urb as it is actually an interrupt urb, which
|
|
|
+ * generic close thus fails to kill.
|
|
|
+ */
|
|
|
+ usb_kill_urb(port->read_urb);
|
|
|
+ usb_kill_urb(port->interrupt_in_urb);
|
|
|
+
|
|
|
+ usb_serial_generic_close(port);
|
|
|
} /* mct_u232_close */
|
|
|
|
|
|
|