On Wed, Apr 20, 2005 at 08:26:29PM +0200, Oliver Neukum wrote:
>       /* shutdown our bulk reads and writes */
>       spin_lock_irqsave(&info->lock, flags);
>       list_for_each_safe(tmp, tmp2, &info->rx_urbs_submitted) {
>               wrap = list_entry(tmp, struct whiteheat_urb_wrap, list);
>               urb = wrap->urb;
>               usb_kill_urb(urb);
>               list_del(tmp);
>               list_add(tmp, &info->rx_urbs_free);
>       }
> 
> This, from whiteheat.c, is wrong. Usb_kill_urb() with a spinlock
> held is illegal.

This driver is marked BROKEN on SMP, as it does lots of bad things while
holding spinlocks :(

Anyone wanting to fix this all up?

thanks,

greg k-h


-------------------------------------------------------
This SF.Net email is sponsored by: New Crystal Reports XI.
Version 11 adds new functionality designed to reduce time involved in
creating, integrating, and deploying reporting solutions. Free runtime info,
new features, or free trial, at: http://www.businessobjects.com/devxi/728
_______________________________________________
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