Skip to content

Commit

Permalink
USB: serial: fix interface data use
Browse files Browse the repository at this point in the history
The interface data should not be used as a flag to signal disconnect.

Now that all serial drivers use the usb_serial disconnect flag and
mutex, we can set the interface data prior to registering the ports and
there's no need to clear it at disconnect.

This should hopefully also make it more clear that the interface data is
not a flag, which could prevent future misuse.

Signed-off-by: Johan Hovold <jhovold@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
Johan Hovold authored and Greg Kroah-Hartman committed Apr 25, 2012
1 parent 6f1efd6 commit bdce661
Showing 1 changed file with 2 additions and 4 deletions.
6 changes: 2 additions & 4 deletions drivers/usb/serial/usb-serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -1043,6 +1043,8 @@ int usb_serial_probe(struct usb_interface *interface,
dbg("the device claims to support interrupt out transfers, but write_int_callback is not defined");
}

usb_set_intfdata(interface, serial);

/* if this device type has an attach function, call it */
if (type->attach) {
retval = type->attach(serial);
Expand Down Expand Up @@ -1087,10 +1089,7 @@ int usb_serial_probe(struct usb_interface *interface,
serial->disconnected = 0;

usb_serial_console_init(debug, minor);

exit:
/* success */
usb_set_intfdata(interface, serial);
module_put(type->driver.owner);
return 0;

Expand All @@ -1112,7 +1111,6 @@ void usb_serial_disconnect(struct usb_interface *interface)
dbg("%s", __func__);

mutex_lock(&serial->disc_mutex);
usb_set_intfdata(interface, NULL);
/* must set a flag, to signal subdrivers */
serial->disconnected = 1;
mutex_unlock(&serial->disc_mutex);
Expand Down

0 comments on commit bdce661

Please sign in to comment.