ext Greg Kroah-Hartman wrote: > From: Oliver Neukum <[EMAIL PROTECTED]> >
> > @@ -683,24 +685,32 @@ static void whiteheat_close(struct usb_serial_port > *port, struct file * filp) > > firm_close(port); > > +printk(KERN_ERR"Before processing rx_urbs_submitted.\n"); I think you could to cut this printk ... > /* shutdown our bulk reads and writes */ > - spin_lock_irqsave(&info->lock, flags); > + mutex_lock(&info->deathwarrant); > + spin_lock_irq(&info->lock); > list_for_each_safe(tmp, tmp2, &info->rx_urbs_submitted) { > wrap = list_entry(tmp, struct whiteheat_urb_wrap, list); > urb = wrap->urb; > + list_del(tmp); > + spin_unlock_irq(&info->lock); > usb_kill_urb(urb); > - list_move(tmp, &info->rx_urbs_free); > + spin_lock_irq(&info->lock); > + list_add(tmp, &info->rx_urbs_free); > } > list_for_each_safe(tmp, tmp2, &info->rx_urb_q) > list_move(tmp, &info->rx_urbs_free); > - > list_for_each_safe(tmp, tmp2, &info->tx_urbs_submitted) { > wrap = list_entry(tmp, struct whiteheat_urb_wrap, list); > urb = wrap->urb; > + list_del(tmp); > + spin_unlock_irq(&info->lock); > usb_kill_urb(urb); > - list_move(tmp, &info->tx_urbs_free); > + spin_lock_irq(&info->lock); > + list_add(tmp, &info->tx_urbs_free); > } > - spin_unlock_irqrestore(&info->lock, flags); > + spin_unlock_irq(&info->lock); > + mutex_unlock(&info->deathwarrant); > > stop_command_port(port->serial); > > @@ -872,7 +882,7 @@ static int whiteheat_ioctl (struct usb_serial_port *port, > struct file * file, un > } > -- Ragner Magalhaes Instituto Nokia de Tecnologia - INdT Open Source Mobile Research Center - OSMRC Linux Kernel Team ------------------------------------------------------------------------- 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