diff options
Diffstat (limited to 'drivers/usb/serial/kobil_sct.c')
-rw-r--r-- | drivers/usb/serial/kobil_sct.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c index 6b570498287f..6db0e561f680 100644 --- a/drivers/usb/serial/kobil_sct.c +++ b/drivers/usb/serial/kobil_sct.c | |||
@@ -69,7 +69,7 @@ static int debug; | |||
69 | 69 | ||
70 | /* Function prototypes */ | 70 | /* Function prototypes */ |
71 | static int kobil_startup(struct usb_serial *serial); | 71 | static int kobil_startup(struct usb_serial *serial); |
72 | static void kobil_shutdown(struct usb_serial *serial); | 72 | static void kobil_release(struct usb_serial *serial); |
73 | static int kobil_open(struct tty_struct *tty, | 73 | static int kobil_open(struct tty_struct *tty, |
74 | struct usb_serial_port *port, struct file *filp); | 74 | struct usb_serial_port *port, struct file *filp); |
75 | static void kobil_close(struct usb_serial_port *port); | 75 | static void kobil_close(struct usb_serial_port *port); |
@@ -117,7 +117,7 @@ static struct usb_serial_driver kobil_device = { | |||
117 | .id_table = id_table, | 117 | .id_table = id_table, |
118 | .num_ports = 1, | 118 | .num_ports = 1, |
119 | .attach = kobil_startup, | 119 | .attach = kobil_startup, |
120 | .shutdown = kobil_shutdown, | 120 | .release = kobil_release, |
121 | .ioctl = kobil_ioctl, | 121 | .ioctl = kobil_ioctl, |
122 | .set_termios = kobil_set_termios, | 122 | .set_termios = kobil_set_termios, |
123 | .tiocmget = kobil_tiocmget, | 123 | .tiocmget = kobil_tiocmget, |
@@ -201,17 +201,13 @@ static int kobil_startup(struct usb_serial *serial) | |||
201 | } | 201 | } |
202 | 202 | ||
203 | 203 | ||
204 | static void kobil_shutdown(struct usb_serial *serial) | 204 | static void kobil_release(struct usb_serial *serial) |
205 | { | 205 | { |
206 | int i; | 206 | int i; |
207 | dbg("%s - port %d", __func__, serial->port[0]->number); | 207 | dbg("%s - port %d", __func__, serial->port[0]->number); |
208 | 208 | ||
209 | for (i = 0; i < serial->num_ports; ++i) { | 209 | for (i = 0; i < serial->num_ports; ++i) |
210 | while (serial->port[i]->port.count > 0) | ||
211 | kobil_close(serial->port[i]); | ||
212 | kfree(usb_get_serial_port_data(serial->port[i])); | 210 | kfree(usb_get_serial_port_data(serial->port[i])); |
213 | usb_set_serial_port_data(serial->port[i], NULL); | ||
214 | } | ||
215 | } | 211 | } |
216 | 212 | ||
217 | 213 | ||