On Wed, 16 Jul 2003, Charles Lepple wrote: > > The patch below will log some additional debugging information. It might > > help pinpoint where things go wrong during your test. Unfortunately, it > > will generate a good deal of output even when things go right. Try to > > run just the test that produced the error messages above and post the > > corresponding part of the kernel log. > > Following David's suggestion, here are the kernel logs for "testusb -t10 > -g3 -c5000" and "testusb -t10 -g4 -c5000". The maximum seems to be 3 > queued requests before the kernel panics, but even -g2 causes messages > similar to those in the -g3 log.
The information in the -g4 log was helpful. Here's another patch, which is my attempt to fix the bug. It actually changes two things: Unlinked URBs are added to the end of the remove list, not the beginning, so their completion routines will be called in the proper order. Completed URBs have their status set right away, so that attempts to unlink them after they have completed will fail instead of messing up internal data structures. Try this patch and run those tests again. If it still fails, try repeating it with both this patch and the diagnostic patch I sent yesterday. Alan Stern ===== uhci-hcd.c 1.53 vs edited ===== --- 1.53/drivers/usb/host/uhci-hcd.c Wed Jul 2 12:28:41 2003 +++ edited/drivers/usb/host/uhci-hcd.c Thu Jul 17 12:02:10 2003 @@ -1534,11 +1534,11 @@ break; } - urbp->status = ret; - if (ret == -EINPROGRESS) goto out; + urbp->status = urb->status = ret; + switch (usb_pipetype(urb->pipe)) { case PIPE_CONTROL: case PIPE_BULK: @@ -1657,7 +1657,7 @@ /* If we're the first, set the next interrupt bit */ if (list_empty(&uhci->urb_remove_list)) uhci_set_next_interrupt(uhci); - list_add(&urbp->urb_list, &uhci->urb_remove_list); + list_add_tail(&urbp->urb_list, &uhci->urb_remove_list); spin_unlock(&uhci->urb_remove_list_lock); spin_unlock_irqrestore(&uhci->urb_list_lock, flags); ------------------------------------------------------- This SF.net email is sponsored by: VM Ware With VMware you can run multiple operating systems on a single machine. WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the same time. Free trial click here: http://www.vmware.com/wl/offer/345/0 _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel