On Wed, Oct 16, 2002, Peter Osterlund <[EMAIL PROTECTED]> wrote: > David Brownell <[EMAIL PROTECTED]> writes: > > > >>>>How does 2.5.41 work for you? > > >>> > > >>>It seems to be fixed. Thanks. > > >> > > >>Heh, that's pretty funny. There were not any uhci specific fixes in > > >>2.5.41... > > >> > > >>Not complaining, > > > Actually, there were. This patch is in 2.5.41. > > > > And wouldn't have changed any oopsing behavior, I assure you. > > > > Your panic was being caused by something else. I saw plenty > > of strange 2.5.40 behavior indicative of someone walking over > > memory they didn't own, and maybe your panic was another case. > > The problem is back in 2.5.43, although it doesn't happen on every > boot. I think I first saw this problem in 2.5.35. > > The oops looks the same as usual. The oops happens because urb->hcpriv > is NULL in uhci_result_control() so the list_empty() check oopses. > > At the end of uhci_urb_enqueue() this code > > if (ret != -EINPROGRESS) { > uhci_destroy_urb_priv (uhci, urb); > return ret; > } > > appears to be calling uhci_destroy_urb_priv() without having acquired > the urb_list_lock. Can this be the cause of my problem?
Have you tried this patch? It's in Greg's BK tree, but hasn't been picked up by Linus yet. JE # This is a BitKeeper generated patch for the following project: # Project Name: greg k-h's linux 2.5 USB kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.892 -> 1.893 # drivers/usb/host/uhci-hcd.c 1.25 -> 1.26 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 02/10/13 johannes@devel.(none) 1.893 # uhci-hcd.c: # If we fail adding the URB to the schedule, we need to make # sure that we remove it from the urb_list. Thanks to # Dan Streetman for finding and fixing this bug. # -------------------------------------------- # diff -Nru a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c --- a/drivers/usb/host/uhci-hcd.c Sun Oct 13 18:11:20 2002 +++ b/drivers/usb/host/uhci-hcd.c Sun Oct 13 18:11:20 2002 @@ -1496,12 +1496,19 @@ break; } - spin_unlock_irqrestore(&uhci->urb_list_lock, flags); - if (ret != -EINPROGRESS) { + /* Submit failed, so delete it from the urb_list */ + struct urb_priv *urbp = urb->hcpriv; + + list_del_init(&urbp->urb_list); + spin_unlock_irqrestore(&uhci->urb_list_lock, flags); uhci_destroy_urb_priv (uhci, urb); + return ret; } + + spin_unlock_irqrestore(&uhci->urb_list_lock, flags); + return 0; } ------------------------------------------------------- This sf.net email is sponsored by: viaVerio will pay you up to $1,000 for every account that you consolidate with us. http://ad.doubleclick.net/clk;4749864;7604308;v? http://www.viaverio.com/consolidator/osdn.cfm _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel