Marcel: Now that usb_kill_urb() is in Greg's development tree, stimulated in no small part by the changes needed for the USB Bluetooth driver, those changes can be simplified. I don't know when usb_kill_urb() will make its way into the -mm series -- maybe it already has -- but when it's there you ought to be able to apply this patch to hci_usb.c and make similar changes to your other drivers.
Alan Stern Signed-off-by: Alan Stern <[EMAIL PROTECTED]> ===== drivers/bluetooth/hci_usb.c 1.46 vs edited ===== --- 1.46/drivers/bluetooth/hci_usb.c Mon Jun 7 16:15:10 2004 +++ edited/drivers/bluetooth/hci_usb.c Fri Jul 9 09:43:30 2004 @@ -343,14 +343,6 @@ return 0; } -static inline void hci_usb_wait_for_urb(struct urb *urb) -{ - while (atomic_read(&urb->kref.refcount) > 1) { - current->state = TASK_UNINTERRUPTIBLE; - schedule_timeout((5 * HZ + 999) / 1000); - } -} - static void hci_usb_unlink_urbs(struct hci_usb *husb) { int i; @@ -366,8 +358,7 @@ urb = &_urb->urb; BT_DBG("%s unlinking _urb %p type %d urb %p", husb->hdev->name, _urb, _urb->type, urb); - usb_unlink_urb(urb); - hci_usb_wait_for_urb(urb); + usb_kill_urb(urb); _urb_queue_tail(__completed_q(husb, _urb->type), _urb); } ------------------------------------------------------- This SF.Net email sponsored by Black Hat Briefings & Training. Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel