diff options
| author | Eric W. Biederman <ebiederm@xmission.com> | 2012-01-14 00:32:06 -0500 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@suse.de> | 2012-01-24 15:08:35 -0500 |
| commit | 6d443d8499e4e59ffb949759cdded32730f8d2f6 (patch) | |
| tree | 730339226a8fe9ea620a11da276cd2a32d448892 | |
| parent | 52a749992ca6a0fd304609af40ed3bfd6cef4660 (diff) | |
usb: io_ti: Make edge_remove_sysfs_attrs the port_remove method.
Calling edge_remove_sysfs_attrs from edge_disconnect is too late
as the device has already been removed from sysfs.
Do the simple and obvious thing and make edge_remove_sysfs_attrs
the port_remove method.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Reported-by: Wolfgang Frisch <wfpub@roembden.net>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| -rw-r--r-- | drivers/usb/serial/io_ti.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c index 65bf06aa591a..5818bfc3261e 100644 --- a/drivers/usb/serial/io_ti.c +++ b/drivers/usb/serial/io_ti.c | |||
| @@ -2657,15 +2657,7 @@ cleanup: | |||
| 2657 | 2657 | ||
| 2658 | static void edge_disconnect(struct usb_serial *serial) | 2658 | static void edge_disconnect(struct usb_serial *serial) |
| 2659 | { | 2659 | { |
| 2660 | int i; | ||
| 2661 | struct edgeport_port *edge_port; | ||
| 2662 | |||
| 2663 | dbg("%s", __func__); | 2660 | dbg("%s", __func__); |
| 2664 | |||
| 2665 | for (i = 0; i < serial->num_ports; ++i) { | ||
| 2666 | edge_port = usb_get_serial_port_data(serial->port[i]); | ||
| 2667 | edge_remove_sysfs_attrs(edge_port->port); | ||
| 2668 | } | ||
| 2669 | } | 2661 | } |
| 2670 | 2662 | ||
| 2671 | static void edge_release(struct usb_serial *serial) | 2663 | static void edge_release(struct usb_serial *serial) |
| @@ -2744,6 +2736,7 @@ static struct usb_serial_driver edgeport_1port_device = { | |||
| 2744 | .disconnect = edge_disconnect, | 2736 | .disconnect = edge_disconnect, |
| 2745 | .release = edge_release, | 2737 | .release = edge_release, |
| 2746 | .port_probe = edge_create_sysfs_attrs, | 2738 | .port_probe = edge_create_sysfs_attrs, |
| 2739 | .port_remove = edge_remove_sysfs_attrs, | ||
| 2747 | .ioctl = edge_ioctl, | 2740 | .ioctl = edge_ioctl, |
| 2748 | .set_termios = edge_set_termios, | 2741 | .set_termios = edge_set_termios, |
| 2749 | .tiocmget = edge_tiocmget, | 2742 | .tiocmget = edge_tiocmget, |
| @@ -2775,6 +2768,7 @@ static struct usb_serial_driver edgeport_2port_device = { | |||
| 2775 | .disconnect = edge_disconnect, | 2768 | .disconnect = edge_disconnect, |
| 2776 | .release = edge_release, | 2769 | .release = edge_release, |
| 2777 | .port_probe = edge_create_sysfs_attrs, | 2770 | .port_probe = edge_create_sysfs_attrs, |
| 2771 | .port_remove = edge_remove_sysfs_attrs, | ||
| 2778 | .ioctl = edge_ioctl, | 2772 | .ioctl = edge_ioctl, |
| 2779 | .set_termios = edge_set_termios, | 2773 | .set_termios = edge_set_termios, |
| 2780 | .tiocmget = edge_tiocmget, | 2774 | .tiocmget = edge_tiocmget, |
