Message ID | 1279494644-3762-1-git-send-email-ydirson@altern.org |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
From: Yann Dirson <ydirson@altern.org> Date: Mon, 19 Jul 2010 01:13:24 +0200 > Without this fix, init of the via82cxxx driver causes a oops with a > stack resembling the one below, and the boot blocks between init of > USB devices and launch of init (was easy to bisect by booting with > init=/bin/sh). ... > The typo was introduced in a354ae8747d0687093ce244e76b15b6174d2f098, > and affects 2.6.33-rc4 and later. > > Signed-off-by: Yann Dirson <ydirson@altern.org> Applied, thanks! -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Jul 19, 2010 at 01:13:24AM +0200, Yann Dirson wrote: > Without this fix, init of the via82cxxx driver causes a oops with a > stack resembling the one below, and the boot blocks between init of > USB devices and launch of init (was easy to bisect by booting with > init=/bin/sh). Looks like I was a bit too quick - this backtrace is not one of those I got without this fix (they never made it to the disk), but happens with the fix applied. > > Pid: 279, comm: work_for_cpu Not tainted 2.6.34.1-00003-ga42ea77 #2 > Call Trace: > [<ffffffff81045691>] ? warn_slowpath_common+0x76/0x8c > [<ffffffff810456f9>] ? warn_slowpath_fmt+0x40/0x45 > [<ffffffff812eb5a1>] ? printk+0x40/0x47 > [<ffffffff8108e1fd>] ? enable_irq+0x3e/0x64 > [<ffffffffa0003900>] ? ide_probe_port+0x55c/0x589 [ide_core] > [<ffffffffa0003f22>] ? ide_host_register+0x273/0x628 [ide_core] > [<ffffffffa00083e3>] ? ide_pci_init_two+0x4da/0x5c5 [ide_core] > [<ffffffff8106117e>] ? up+0xe/0x36 > [<ffffffff81045d7e>] ? release_console_sem+0x17e/0x1ae > [<ffffffff812d945b>] ? klist_iter_exit+0x14/0x1e > [<ffffffff8120ed23>] ? bus_find_device+0x75/0x83 > [<ffffffffa0022832>] ? via_init_one+0x269/0x28a [via82cxxx] > [<ffffffffa00223a2>] ? init_chipset_via82cxxx+0x0/0x1ea [via82cxxx] > [<ffffffff81059f25>] ? do_work_for_cpu+0x0/0x1b > [<ffffffff81190c65>] ? local_pci_probe+0x12/0x16 > [<ffffffff81059f30>] ? do_work_for_cpu+0xb/0x1b > [<ffffffff8105d0dd>] ? kthread+0x75/0x7d > [<ffffffff810097e4>] ? kernel_thread_helper+0x4/0x10 > [<ffffffff8105d068>] ? kthread+0x0/0x7d > [<ffffffff810097e0>] ? kernel_thread_helper+0x0/0x10 > ---[ end trace 89c8cb70379b5bda ]--- > > The typo was introduced in a354ae8747d0687093ce244e76b15b6174d2f098, > and affects 2.6.33-rc4 and later. > > Signed-off-by: Yann Dirson <ydirson@altern.org> > --- > drivers/ide/via82cxxx.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/ide/via82cxxx.c b/drivers/ide/via82cxxx.c > index 101f400..d2a0997 100644 > --- a/drivers/ide/via82cxxx.c > +++ b/drivers/ide/via82cxxx.c > @@ -79,7 +79,7 @@ static struct via_isa_bridge { > { "vt8261", PCI_DEVICE_ID_VIA_8261, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, > { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, > { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, > - { "vt6415", PCI_DEVICE_ID_VIA_6410, 0x00, 0xff, ATA_UDMA6, VIA_BAD_AST }, > + { "vt6415", PCI_DEVICE_ID_VIA_6415, 0x00, 0xff, ATA_UDMA6, VIA_BAD_AST }, > { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, > { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, > { "vt8237a", PCI_DEVICE_ID_VIA_8237A, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, > -- > 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Yann Dirson <ydirson@free.fr> Date: Mon, 19 Jul 2010 01:28:38 +0200 > On Mon, Jul 19, 2010 at 01:13:24AM +0200, Yann Dirson wrote: >> Without this fix, init of the via82cxxx driver causes a oops with a >> stack resembling the one below, and the boot blocks between init of >> USB devices and launch of init (was easy to bisect by booting with >> init=/bin/sh). > > Looks like I was a bit too quick - this backtrace is not one of those > I got without this fix (they never made it to the disk), but happens > with the fix applied. The fix is still correct, so I'll leave it in the tree. -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Sun, Jul 18, 2010 at 04:56:20PM -0700, David Miller wrote: > From: Yann Dirson <ydirson@free.fr> > Date: Mon, 19 Jul 2010 01:28:38 +0200 > > > On Mon, Jul 19, 2010 at 01:13:24AM +0200, Yann Dirson wrote: > >> Without this fix, init of the via82cxxx driver causes a oops with a > >> stack resembling the one below, and the boot blocks between init of > >> USB devices and launch of init (was easy to bisect by booting with > >> init=/bin/sh). > > > > Looks like I was a bit too quick - this backtrace is not one of those > > I got without this fix (they never made it to the disk), but happens > > with the fix applied. > > The fix is still correct, so I'll leave it in the tree. OK, so let's hunt the remaining problem. Indeed I had not taken too much care of the context in the logs - full excerpt below, unbalanced enable for an IRQ which is shared with other things (ehci_hcd:usb1, ehci_hcd:usb3, ehci_hcd:usb5, ide0, ide1, firewire_ohci). Not sure if that matters, but I recall the oops I got before correcting the ID typo involved ohci. OTOH, we see here that the system believes in existence of "ide1", although the vt6415 appears to be single-channel (http://www.via.com.tw/en/products/peripherals/pci_pcie/vt6415/) I'll be adding a couple of printks and retest with frame-pointers, but in case someone already knows what's going on... :) WARNING: at kernel/irq/manage.c:274 enable_irq+0x3e/0x64() Hardware name: System Product Name Unbalanced enable for IRQ 17 Modules linked in: usbhid hid sd_mod crc_t10dif ohci_hcd thermal r8169 mii firewire_ohci(+) ahci firewire_core crc_itu_t ehci_hcd libata scsi_mod thermal_sys usbcore nls_base via82cxxx(+) ide_core Pid: 279, comm: work_for_cpu Not tainted 2.6.34.1-00003-ga42ea77 #2 Call Trace: [<ffffffff81045691>] ? warn_slowpath_common+0x76/0x8c [<ffffffff810456f9>] ? warn_slowpath_fmt+0x40/0x45 [<ffffffff812eb5a1>] ? printk+0x40/0x47 [<ffffffff8108e1fd>] ? enable_irq+0x3e/0x64 [<ffffffffa0003900>] ? ide_probe_port+0x55c/0x589 [ide_core] [<ffffffffa0003f22>] ? ide_host_register+0x273/0x628 [ide_core] [<ffffffffa00083e3>] ? ide_pci_init_two+0x4da/0x5c5 [ide_core] [<ffffffff8106117e>] ? up+0xe/0x36 [<ffffffff81045d7e>] ? release_console_sem+0x17e/0x1ae [<ffffffff812d945b>] ? klist_iter_exit+0x14/0x1e [<ffffffff8120ed23>] ? bus_find_device+0x75/0x83 [<ffffffffa0022832>] ? via_init_one+0x269/0x28a [via82cxxx] [<ffffffffa00223a2>] ? init_chipset_via82cxxx+0x0/0x1ea [via82cxxx] [<ffffffff81059f25>] ? do_work_for_cpu+0x0/0x1b [<ffffffff81190c65>] ? local_pci_probe+0x12/0x16 [<ffffffff81059f30>] ? do_work_for_cpu+0xb/0x1b [<ffffffff8105d0dd>] ? kthread+0x75/0x7d [<ffffffff810097e4>] ? kernel_thread_helper+0x4/0x10 [<ffffffff8105d068>] ? kthread+0x0/0x7d [<ffffffff810097e0>] ? kernel_thread_helper+0x0/0x10 -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Yann Dirson <ydirson@free.fr> Date: Tue, 20 Jul 2010 00:07:37 +0200 > OTOH, we see here that the system believes in existence of "ide1", > although the vt6415 appears to be single-channel > (http://www.via.com.tw/en/products/peripherals/pci_pcie/vt6415/) I think this is unlikely as the ATA layer pata_via.c driver also does not mark this device as single-channel. Have you tried just booting up with the ATA driver enabled instead of the IDE layer one? Please do that as it might help narrow this down. -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/ide/via82cxxx.c b/drivers/ide/via82cxxx.c index 101f400..d2a0997 100644 --- a/drivers/ide/via82cxxx.c +++ b/drivers/ide/via82cxxx.c @@ -79,7 +79,7 @@ static struct via_isa_bridge { { "vt8261", PCI_DEVICE_ID_VIA_8261, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, { "vt8237s", PCI_DEVICE_ID_VIA_8237S, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, { "vt6410", PCI_DEVICE_ID_VIA_6410, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, - { "vt6415", PCI_DEVICE_ID_VIA_6410, 0x00, 0xff, ATA_UDMA6, VIA_BAD_AST }, + { "vt6415", PCI_DEVICE_ID_VIA_6415, 0x00, 0xff, ATA_UDMA6, VIA_BAD_AST }, { "vt8251", PCI_DEVICE_ID_VIA_8251, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, { "vt8237", PCI_DEVICE_ID_VIA_8237, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST }, { "vt8237a", PCI_DEVICE_ID_VIA_8237A, 0x00, 0x2f, ATA_UDMA6, VIA_BAD_AST },
Without this fix, init of the via82cxxx driver causes a oops with a stack resembling the one below, and the boot blocks between init of USB devices and launch of init (was easy to bisect by booting with init=/bin/sh). Pid: 279, comm: work_for_cpu Not tainted 2.6.34.1-00003-ga42ea77 #2 Call Trace: [<ffffffff81045691>] ? warn_slowpath_common+0x76/0x8c [<ffffffff810456f9>] ? warn_slowpath_fmt+0x40/0x45 [<ffffffff812eb5a1>] ? printk+0x40/0x47 [<ffffffff8108e1fd>] ? enable_irq+0x3e/0x64 [<ffffffffa0003900>] ? ide_probe_port+0x55c/0x589 [ide_core] [<ffffffffa0003f22>] ? ide_host_register+0x273/0x628 [ide_core] [<ffffffffa00083e3>] ? ide_pci_init_two+0x4da/0x5c5 [ide_core] [<ffffffff8106117e>] ? up+0xe/0x36 [<ffffffff81045d7e>] ? release_console_sem+0x17e/0x1ae [<ffffffff812d945b>] ? klist_iter_exit+0x14/0x1e [<ffffffff8120ed23>] ? bus_find_device+0x75/0x83 [<ffffffffa0022832>] ? via_init_one+0x269/0x28a [via82cxxx] [<ffffffffa00223a2>] ? init_chipset_via82cxxx+0x0/0x1ea [via82cxxx] [<ffffffff81059f25>] ? do_work_for_cpu+0x0/0x1b [<ffffffff81190c65>] ? local_pci_probe+0x12/0x16 [<ffffffff81059f30>] ? do_work_for_cpu+0xb/0x1b [<ffffffff8105d0dd>] ? kthread+0x75/0x7d [<ffffffff810097e4>] ? kernel_thread_helper+0x4/0x10 [<ffffffff8105d068>] ? kthread+0x0/0x7d [<ffffffff810097e0>] ? kernel_thread_helper+0x0/0x10 ---[ end trace 89c8cb70379b5bda ]--- The typo was introduced in a354ae8747d0687093ce244e76b15b6174d2f098, and affects 2.6.33-rc4 and later. Signed-off-by: Yann Dirson <ydirson@altern.org> --- drivers/ide/via82cxxx.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)