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