* Re: [linux-usb-devel] 2.5.40 panic in uhci-hcd [not found] <20021008071351.GQ1780@kroah.com> @ 2002-10-08 18:01 ` Peter Osterlund 2002-10-08 18:19 ` Greg KH 0 siblings, 1 reply; 7+ messages in thread From: Peter Osterlund @ 2002-10-08 18:01 UTC (permalink / raw) To: Greg KH; +Cc: Kernel Mailing List, linux-usb-devel On Tue, 8 Oct 2002, Greg KH wrote: > On Sun, Oct 06, 2002 at 02:03:49PM +0200, Peter Osterlund wrote: > > Sometimes when booting 2.5.40 and my Freecom USB-IDE controller (CDRW) > > is connected, the kernel panics when trying to initialize the usb > > subsystem. It happens right after the RH73 boot scripts print out: > > > > Initializing USB controller (uhci-hcd): [ OK ] > > > > In 2.5.39, this happened every time I tried to boot, but in 2.5.40 it > > seems to happen about 20% of the time. > > Hey, we're getting better :) > > How does 2.5.41 work for you? It seems to be fixed. Thanks. -- Peter Osterlund - petero2@telia.com http://w1.894.telia.com/~u89404340 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [linux-usb-devel] 2.5.40 panic in uhci-hcd 2002-10-08 18:01 ` [linux-usb-devel] 2.5.40 panic in uhci-hcd Peter Osterlund @ 2002-10-08 18:19 ` Greg KH 2002-10-08 18:30 ` Peter Osterlund 0 siblings, 1 reply; 7+ messages in thread From: Greg KH @ 2002-10-08 18:19 UTC (permalink / raw) To: Peter Osterlund; +Cc: Kernel Mailing List, linux-usb-devel On Tue, Oct 08, 2002 at 08:01:34PM +0200, Peter Osterlund wrote: > On Tue, 8 Oct 2002, Greg KH wrote: > > > On Sun, Oct 06, 2002 at 02:03:49PM +0200, Peter Osterlund wrote: > > > Sometimes when booting 2.5.40 and my Freecom USB-IDE controller (CDRW) > > > is connected, the kernel panics when trying to initialize the usb > > > subsystem. It happens right after the RH73 boot scripts print out: > > > > > > Initializing USB controller (uhci-hcd): [ OK ] > > > > > > In 2.5.39, this happened every time I tried to boot, but in 2.5.40 it > > > seems to happen about 20% of the time. > > > > Hey, we're getting better :) > > > > 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, greg k-h ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [linux-usb-devel] 2.5.40 panic in uhci-hcd 2002-10-08 18:19 ` Greg KH @ 2002-10-08 18:30 ` Peter Osterlund 2002-10-08 20:37 ` David Brownell 0 siblings, 1 reply; 7+ messages in thread From: Peter Osterlund @ 2002-10-08 18:30 UTC (permalink / raw) To: Greg KH; +Cc: Kernel Mailing List, linux-usb-devel On Tue, 8 Oct 2002, Greg KH wrote: > On Tue, Oct 08, 2002 at 08:01:34PM +0200, Peter Osterlund wrote: > > On Tue, 8 Oct 2002, Greg KH wrote: > > > > > On Sun, Oct 06, 2002 at 02:03:49PM +0200, Peter Osterlund wrote: > > > > Sometimes when booting 2.5.40 and my Freecom USB-IDE controller (CDRW) > > > > is connected, the kernel panics when trying to initialize the usb > > > > subsystem. It happens right after the RH73 boot scripts print out: > > > > > > > > Initializing USB controller (uhci-hcd): [ OK ] > > > > > > > > In 2.5.39, this happened every time I tried to boot, but in 2.5.40 it > > > > seems to happen about 20% of the time. > > > > > > Hey, we're getting better :) > > > > > > 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. diff -Nru a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c --- a/drivers/usb/host/uhci-hcd.c Mon Oct 7 11:25:38 2002 +++ b/drivers/usb/host/uhci-hcd.c Mon Oct 7 11:25:38 2002 @@ -2149,14 +2149,14 @@ uhci->fl->dma_handle = dma_handle; uhci->td_pool = pci_pool_create("uhci_td", hcd->pdev, - sizeof(struct uhci_td), 16, 0, GFP_ATOMIC); + sizeof(struct uhci_td), 16, 0); if (!uhci->td_pool) { err("unable to create td pci_pool"); goto err_create_td_pool; } uhci->qh_pool = pci_pool_create("uhci_qh", hcd->pdev, - sizeof(struct uhci_qh), 16, 0, GFP_ATOMIC); + sizeof(struct uhci_qh), 16, 0); if (!uhci->qh_pool) { err("unable to create qh pci_pool"); goto err_create_qh_pool; -- Peter Osterlund - petero2@telia.com http://w1.894.telia.com/~u89404340 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [linux-usb-devel] 2.5.40 panic in uhci-hcd 2002-10-08 18:30 ` Peter Osterlund @ 2002-10-08 20:37 ` David Brownell 2002-10-16 17:32 ` Peter Osterlund 0 siblings, 1 reply; 7+ messages in thread From: David Brownell @ 2002-10-08 20:37 UTC (permalink / raw) To: Peter Osterlund; +Cc: Greg KH, Kernel Mailing List, linux-usb-devel >>>>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. > - sizeof(struct uhci_td), 16, 0, GFP_ATOMIC); > + sizeof(struct uhci_td), 16, 0); ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [linux-usb-devel] 2.5.40 panic in uhci-hcd 2002-10-08 20:37 ` David Brownell @ 2002-10-16 17:32 ` Peter Osterlund 2002-10-16 17:34 ` Johannes Erdfelt 0 siblings, 1 reply; 7+ messages in thread From: Peter Osterlund @ 2002-10-16 17:32 UTC (permalink / raw) To: David Brownell Cc: Greg KH, Kernel Mailing List, linux-usb-devel, Johannes Erdfelt David Brownell <david-b@pacbell.net> 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? Unable to handle kernel NULL pointer dereference at virtual address 00000014 *pde = 00000000 Oops: 0000 usb-storage uhci-hcd usbcore CPU: 0 EIP: 0060:[<c482e4d7>] Not tainted EFLAGS: 00010006 EIP is at uhci_result_control+0x17/0x210 [uhci-hcd] eax: 00000000 ebx: c3b2a420 ecx: 00010002 edx: ffffffea esi: 00000014 edi: 00010002 ebp: c3b2a420 esp: c3b81db8 ds: 0068 es: 0068 ss: 0068 Process usb.agent (pid: 203, threadinfo=c3b80000 task=c3e760a0) Stack: c3c7d15c 00000082 00000000 c3b2a420 00000000 00010002 c1145600 c482f357 c1145600 c3b2a420 00000202 c1145740 c1145740 c1145600 c1145600 c482fd51 c1145600 c3b2a420 c1145600 00000003 0000000a c3b81e68 c4818de7 c1145600 Call Trace: [<c482f357>] uhci_transfer_result+0x67/0x1a0 [uhci-hcd] [<c482fd51>] uhci_irq+0xf1/0x130 [uhci-hcd] [<c4818de7>] usb_hcd_irq+0x17/0x30 [usbcore] [<c010881d>] handle_IRQ_event+0x2d/0x50 [<c01089fd>] do_IRQ+0xad/0x140 [<c0107478>] common_interrupt+0x18/0x20 [<c0127182>] do_wp_page+0x1c2/0x3d0 [<c0111c49>] __wake_up+0x39/0x40 [<c0127eaf>] handle_mm_fault+0xdf/0x150 [<c0150c4c>] dput+0x1c/0x1a0 [<c01102fd>] do_page_fault+0x14d/0x4cf [<c011d1fb>] update_wall_time+0xb/0x40 [<c011fb55>] do_sigaction+0xd5/0x110 [<c011ff29>] sys_rt_sigaction+0x99/0xf0 [<c013c793>] filp_close+0xa3/0xb0 [<c011f2b4>] sys_rt_sigprocmask+0x144/0x200 [<c01101b0>] do_page_fault+0x0/0x4cf [<c01074bd>] error_code+0x2d/0x40 Code: 8b 40 14 39 f0 75 0a b8 ea ff ff ff e9 d4 01 00 00 8b 54 24 <0>Kernel panic: Aiee, killing interrupt handler! -- Peter Osterlund - petero2@telia.com http://w1.894.telia.com/~u89404340 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [linux-usb-devel] 2.5.40 panic in uhci-hcd 2002-10-16 17:32 ` Peter Osterlund @ 2002-10-16 17:34 ` Johannes Erdfelt 2002-10-16 18:28 ` Peter Osterlund 0 siblings, 1 reply; 7+ messages in thread From: Johannes Erdfelt @ 2002-10-16 17:34 UTC (permalink / raw) To: Peter Osterlund Cc: David Brownell, Greg KH, Kernel Mailing List, linux-usb-devel On Wed, Oct 16, 2002, Peter Osterlund <petero2@telia.com> wrote: > David Brownell <david-b@pacbell.net> 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; } ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [linux-usb-devel] 2.5.40 panic in uhci-hcd 2002-10-16 17:34 ` Johannes Erdfelt @ 2002-10-16 18:28 ` Peter Osterlund 0 siblings, 0 replies; 7+ messages in thread From: Peter Osterlund @ 2002-10-16 18:28 UTC (permalink / raw) To: Johannes Erdfelt Cc: David Brownell, Greg KH, Kernel Mailing List, linux-usb-devel Johannes Erdfelt <johannes@erdfelt.com> writes: > On Wed, Oct 16, 2002, Peter Osterlund <petero2@telia.com> wrote: > > > > 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. I applied it to 2.5.39 (which always died at boot before this patch) and now it boots without problems, so this looks like the correct fix for my problem. Thanks. -- Peter Osterlund - petero2@telia.com http://w1.894.telia.com/~u89404340 ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2002-10-16 18:22 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20021008071351.GQ1780@kroah.com>
2002-10-08 18:01 ` [linux-usb-devel] 2.5.40 panic in uhci-hcd Peter Osterlund
2002-10-08 18:19 ` Greg KH
2002-10-08 18:30 ` Peter Osterlund
2002-10-08 20:37 ` David Brownell
2002-10-16 17:32 ` Peter Osterlund
2002-10-16 17:34 ` Johannes Erdfelt
2002-10-16 18:28 ` Peter Osterlund
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox