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>
Šī revīzija ir iekļauta:
Oliver Neukum
2008-01-23 12:28:45 +01:00
revīziju iesūtīja Greg Kroah-Hartman
vecāks 3edbc98650
revīzija 0915f490d8
4 mainīti faili ar 19 papildinājumiem un 15 dzēšanām

Parādīt failu

@@ -667,7 +667,7 @@ static void pl2303_close(struct usb_serial_port *port, struct file *filp)
set_current_state(TASK_INTERRUPTIBLE);
if (pl2303_buf_data_avail(priv->buf) == 0 ||
timeout == 0 || signal_pending(current) ||
!usb_get_intfdata(port->serial->interface)) /* disconnect */
port->serial->disconnected)
break;
spin_unlock_irqrestore(&priv->lock, flags);
timeout = schedule_timeout(timeout);