On Tue, 13 Jan 2004, Axel Waggershauser wrote: > I found that uhci_urb_dequeue gets called and calls > uhci_unlink_generic() which in turn processes about 350 TDs, calls > uhci_delete_queued_urb(), where it seems to find > list_empty(&urbp->queue_list) to be true and immediately exits > uhci_delete_queued_urb().
I assume you verified that when uhci_urb_dequeue() gets called, it is for _your_ URB. The unlink_generic() and delete_queued_urb() parts don't matter so much for your problem. Of more interest is where urb_dequeue() does if (list_empty(&uhci->urb_remove_list)) uhci_set_next_interrupt(uhci); list_add(&urbp->urb_list, &uhci->urb_remove_list); Does that happen okay for your URB? The urb_remove_list should be empty so the conditional should execute. > I see some uhci_remove_pending_qhs() calls before I unplug the device, > that means in normal operation. But after the "usb 1-2: USB disconnect" > line there is neither any uhci_remove_pending_qhs() call nor any > uhci_finish_urb(). It sounds like remove_pending_qhs() isn't getting called for your URB, since your URB isn't dequeued until after the disconnect. Is that right? > I am afraid I depend on you again to get an idea how that got me a good > step forward :-). uhci_remove_pending_qhs() is supposed to be called from within uhci_irq(), the interrupt handler for the UHCI driver. Before putting any printk's in there, be warned that this routine can get called a _lot_ since it handles pretty much everything that happens to the controller. But if your device is the only one attached the volume of messages won't be too high. Try finding out what uhci_irq() is doing and why it isn't calling remove_pending_qhs() after you unplug the device. Is uhci_irq() getting called _at all_ after the unplug? If everything is working right it should be called within 1 ms of the time uhci_urb_dequeue() returns. Alan Stern ------------------------------------------------------- This SF.net email is sponsored by: Perforce Software. Perforce is the Fast Software Configuration Management System offering advanced branching capabilities and atomic changes on 50+ platforms. Free Eval! http://www.perforce.com/perforce/loadprog.html _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel