aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/pl2303.c
diff options
context:
space:
mode:
authorOliver Neukum <oliver@neukum.org>2008-01-23 06:28:45 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2008-02-01 17:35:05 -0500
commit0915f490d81c1a5098b399ec6c0be45bd421ee1d (patch)
tree840285ec52dba9ae65757b27c68ee3933c041ff3 /drivers/usb/serial/pl2303.c
parent3edbc986509888fa9977cc180c1fe458d2f89076 (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/pl2303.c')
-rw-r--r--drivers/usb/serial/pl2303.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index ac3d8765f482..ae3ec1a64008 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -667,7 +667,7 @@ static void pl2303_close(struct usb_serial_port *port, struct file *filp)
667 set_current_state(TASK_INTERRUPTIBLE); 667 set_current_state(TASK_INTERRUPTIBLE);
668 if (pl2303_buf_data_avail(priv->buf) == 0 || 668 if (pl2303_buf_data_avail(priv->buf) == 0 ||
669 timeout == 0 || signal_pending(current) || 669 timeout == 0 || signal_pending(current) ||
670 !usb_get_intfdata(port->serial->interface)) /* disconnect */ 670 port->serial->disconnected)
671 break; 671 break;
672 spin_unlock_irqrestore(&priv->lock, flags); 672 spin_unlock_irqrestore(&priv->lock, flags);
673 timeout = schedule_timeout(timeout); 673 timeout = schedule_timeout(timeout);