Hi, you are submitting an URB with GFP_KERNEL holding a spinlock. In this case the spinlock can be dropped earlier.
Regards Oliver Signed-off-by: Oliver Neukum <[EMAIL PROTECTED]> -- --- a/drivers/usb/serial/ti_usb_3410_5052.c 2007-05-06 13:21:10.000000000 +0200 +++ b/drivers/usb/serial/ti_usb_3410_5052.c 2007-05-07 08:25:47.000000000 +0200 @@ -1555,15 +1555,17 @@ static int ti_restart_read(struct ti_por spin_lock_irqsave(&tport->tp_lock, flags); if (tport->tp_read_urb_state == TI_READ_URB_STOPPED) { + tport->tp_read_urb_state = TI_READ_URB_RUNNING; urb = tport->tp_port->read_urb; + spin_unlock_irqrestore(&tport->tp_lock, flags); urb->complete = ti_bulk_in_callback; urb->context = tport; urb->dev = tport->tp_port->serial->dev; status = usb_submit_urb(urb, GFP_KERNEL); + } else { + tport->tp_read_urb_state = TI_READ_URB_RUNNING; + spin_unlock_irqrestore(&tport->tp_lock, flags); } - tport->tp_read_urb_state = TI_READ_URB_RUNNING; - - spin_unlock_irqrestore(&tport->tp_lock, flags); return status; } ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel