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

Reply via email to