diff options
author | Oliver Neukum <oliver@neukum.org> | 2008-01-23 06:28:45 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-02-01 17:35:05 -0500 |
commit | 0915f490d81c1a5098b399ec6c0be45bd421ee1d (patch) | |
tree | 840285ec52dba9ae65757b27c68ee3933c041ff3 /drivers/usb/serial/oti6858.c | |
parent | 3edbc986509888fa9977cc180c1fe458d2f89076 (diff) |
USB: last abuses of intfdata in close for usb-serial drivers
these drivers abused intfdata in close() as flags for binding.
That races with reprobing of those devices. This patch fixes that by using
the flag and the locks introduced with the patch against mos7720.
Signed-off-by: Oliver Neukum <oneukum@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/serial/oti6858.c')
-rw-r--r-- | drivers/usb/serial/oti6858.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/serial/oti6858.c b/drivers/usb/serial/oti6858.c index db725aaf7d19..a3847d6c946e 100644 --- a/drivers/usb/serial/oti6858.c +++ b/drivers/usb/serial/oti6858.c | |||
@@ -649,7 +649,7 @@ static void oti6858_close(struct usb_serial_port *port, struct file *filp) | |||
649 | set_current_state(TASK_INTERRUPTIBLE); | 649 | set_current_state(TASK_INTERRUPTIBLE); |
650 | if (oti6858_buf_data_avail(priv->buf) == 0 | 650 | if (oti6858_buf_data_avail(priv->buf) == 0 |
651 | || timeout == 0 || signal_pending(current) | 651 | || timeout == 0 || signal_pending(current) |
652 | || !usb_get_intfdata(port->serial->interface)) /* disconnect */ | 652 | || port->serial->disconnected) |
653 | break; | 653 | break; |
654 | spin_unlock_irqrestore(&priv->lock, flags); | 654 | spin_unlock_irqrestore(&priv->lock, flags); |
655 | timeout = schedule_timeout(timeout); | 655 | timeout = schedule_timeout(timeout); |