* 2.6.4-rc1: OOPS when daisy-chaining ieee1394 devices @ 2004-03-02 3:29 Dmitry Torokhov 2004-03-02 4:18 ` Ben Collins 0 siblings, 1 reply; 3+ messages in thread From: Dmitry Torokhov @ 2004-03-02 3:29 UTC (permalink / raw) To: linux-kernel; +Cc: Ben Collins Hi, Got the following oops when trying to power up DVD burner daisy chained to a WD hard drive. Reproducible with latest -bk as well as with ieee1394 patch from -mm tree. This is a regression as it was somewhat worked with earlier 2.6 kernels (well, earlier kernels could only log in into the last powered device, reconnecting to devices sitting earlier in chain was always failing), but there was no oopses. Mar 1 17:33:59 core kernel: ohci1394: fw-host0: SelfID received, but NodeID invalid (probably new bus reset occurred): 0000FFC0 Mar 1 17:33:59 core kernel: ieee1394: Error parsing configrom for node 0-00:1023 Mar 1 17:33:59 core kernel: ieee1394: Node changed: 0-00:1023 -> 0-01:1023 Mar 1 17:34:07 core kernel: ieee1394: Node added: ID:BUS[0-00:1023] GUID[0030e001e0ac0f63] Mar 1 17:34:08 core kernel: SCSI subsystem initialized Mar 1 17:34:08 core kernel: sbp2: $Rev: 1144 $ Ben Collins <bcollins@debian.org> Mar 1 17:34:08 core kernel: scsi0 : SCSI emulation for IEEE-1394 SBP-2 Devices Mar 1 17:34:09 core kernel: ieee1394: sbp2: Logged into SBP-2 device Mar 1 17:34:09 core kernel: ieee1394: sbp2: Node 0-00:1023: Max speed [S400] - Max payload [2048] Mar 1 17:34:09 core kernel: Vendor: WDC WD20 Model: 00JB-00DUA3 Rev: Mar 1 17:34:09 core kernel: Type: Direct-Access ANSI SCSI revision: 06 Mar 1 17:34:09 core kernel: SCSI device sda: 390721968 512-byte hdwr sectors (200050 MB) Mar 1 17:34:09 core kernel: sda: asking for cache data failed Mar 1 17:34:09 core kernel: sda: assuming drive cache: write through Mar 1 17:34:09 core kernel: sda: sda1 Mar 1 17:34:09 core kernel: Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 Mar 1 17:34:24 core kernel: kjournald starting. Commit interval 5 seconds <at this point I powered up DVD> Mar 1 18:10:38 core kernel: ieee1394: Error parsing configrom for node 0-00:1023 Mar 1 18:10:38 core kernel: ieee1394: Node changed: 0-00:1023 -> 0-01:1023 Mar 1 18:10:38 core kernel: ieee1394: Node changed: 0-01:1023 -> 0-02:1023 Mar 1 18:10:38 core kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000004 Mar 1 18:10:38 core kernel: printing eip: Mar 1 18:10:38 core kernel: e1b3b8d8 Mar 1 18:10:38 core kernel: *pde = 00000000 Mar 1 18:10:38 core kernel: Oops: 0000 [#1] Mar 1 18:10:38 core kernel: PREEMPT Mar 1 18:10:38 core kernel: CPU: 0 Mar 1 18:10:38 core kernel: EIP: 0060:[<e1b3b8d8>] Tainted: P Mar 1 18:10:38 core kernel: EFLAGS: 00010282 Mar 1 18:10:38 core kernel: EIP is at __this_module+0x78/0xffffe3d4 [sd_mod] Mar 1 18:10:38 core kernel: eax: e1b3e1e1 ebx: d409e5e1 ecx: 00000004 edx: dfd7f264 Mar 1 18:10:38 core kernel: esi: e1b3b860 edi: d409e544 ebp: dfd63f44 esp: dfd63f2c Mar 1 18:10:38 core kernel: ds: 007b es: 007b ss: 0068 Mar 1 18:10:38 core kernel: Process knodemgrd_0 (pid: 10, threadinfo=dfd62000 task=dfe06060) Mar 1 18:10:38 core kernel: Stack: c0249d73 d409e544 d409e57c d409e57c d9dea0c8 d9dea078 dfd63f60 c0249d3b Mar 1 18:10:38 core kernel: d409e544 d9dea0b0 d9dea0b0 d2beee50 d2beee00 dfd63f7c c0249d3b d9dea078 Mar 1 18:10:38 core kernel: d2beee38 d2beee38 ce576458 00000004 dfd63f9c c0249e5b d2beee00 00000002 Mar 1 18:10:38 core kernel: Call Trace: Mar 1 18:10:38 core kernel: [<c0249d73>] nodemgr_ud_update_pdrv+0x83/0xd0 Mar 1 18:10:38 core kernel: [<c0249d3b>] nodemgr_ud_update_pdrv+0x4b/0xd0 Mar 1 18:10:38 core kernel: [<c0249d3b>] nodemgr_ud_update_pdrv+0x4b/0xd0 Mar 1 18:10:38 core kernel: [<c0249e5b>] nodemgr_probe_ne+0x9b/0xc0 Mar 1 18:10:38 core kernel: [<c0249ed6>] nodemgr_node_probe+0x56/0xa0 Mar 1 18:10:38 core kernel: [<c024a27a>] nodemgr_host_thread+0x16a/0x1a0 Mar 1 18:10:38 core kernel: [<c024a110>] nodemgr_host_thread+0x0/0x1a0 Mar 1 18:10:38 core kernel: [<c01072d9>] kernel_thread_helper+0x5/0xc Mar 1 18:10:38 core kernel: Mar 1 18:10:38 core kernel: Code: 80 39 00 00 00 00 00 00 34 1c 00 00 00 00 00 00 01 00 00 00 -- Dmitry ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 2.6.4-rc1: OOPS when daisy-chaining ieee1394 devices 2004-03-02 3:29 2.6.4-rc1: OOPS when daisy-chaining ieee1394 devices Dmitry Torokhov @ 2004-03-02 4:18 ` Ben Collins 2004-03-03 1:01 ` Dmitry Torokhov 0 siblings, 1 reply; 3+ messages in thread From: Ben Collins @ 2004-03-02 4:18 UTC (permalink / raw) To: Dmitry Torokhov; +Cc: linux-kernel On Mon, Mar 01, 2004 at 10:29:34PM -0500, Dmitry Torokhov wrote: > Hi, > > Got the following oops when trying to power up DVD burner daisy chained to > a WD hard drive. Reproducible with latest -bk as well as with ieee1394 patch > from -mm tree. This is a regression as it was somewhat worked with earlier > 2.6 kernels (well, earlier kernels could only log in into the last powered > device, reconnecting to devices sitting earlier in chain was always failing), > but there was no oopses. Let me know if this patch works for you. ===== drivers/ieee1394/nodemgr.c 1.51 vs edited ===== --- 1.51/drivers/ieee1394/nodemgr.c Wed Feb 25 09:41:45 2004 +++ edited/drivers/ieee1394/nodemgr.c Mon Mar 1 23:15:10 2004 @@ -1286,18 +1286,19 @@ } -static void nodemgr_ud_update_pdrv(struct unit_directory *ud) +static void nodemgr_update_pdrv(struct node_entry *ne) { - struct device *dev; + struct unit_directory *ud; struct hpsb_protocol_driver *pdrv; + struct class *class = &nodemgr_ud_class; + struct class_device *cdev; - if (!get_device(&ud->device)) - return; - - list_for_each_entry(dev, &ud->device.children, node) - nodemgr_ud_update_pdrv(container_of(dev, struct unit_directory, device)); + down_read(&class->subsys.rwsem); + list_for_each_entry(cdev, &class->children, node) { + ud = container_of(cdev, struct unit_directory, class_dev); + if (ud->ne != ne || !ud->device.driver) + continue; - if (ud->device.driver) { pdrv = container_of(ud->device.driver, struct hpsb_protocol_driver, driver); if (pdrv->update && pdrv->update(ud)) { @@ -1306,14 +1307,13 @@ up_write(&ud->device.bus->subsys.rwsem); } } - - put_device(&ud->device); + up_read(&class->subsys.rwsem); } static void nodemgr_probe_ne(struct host_info *hi, struct node_entry *ne, int generation) { - struct device *dev, *udev; + struct device *dev; if (ne->host != hi->host || ne->in_limbo) return; @@ -1330,8 +1330,7 @@ if (ne->needs_probe) nodemgr_process_root_directory(hi, ne); else if (ne->generation == generation) - list_for_each_entry(udev, &dev->children, node) - nodemgr_ud_update_pdrv(container_of(udev, struct unit_directory, device)); + nodemgr_update_pdrv(ne); else nodemgr_suspend_ne(ne); -- Debian - http://www.debian.org/ Linux 1394 - http://www.linux1394.org/ Subversion - http://subversion.tigris.org/ WatchGuard - http://www.watchguard.com/ ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: 2.6.4-rc1: OOPS when daisy-chaining ieee1394 devices 2004-03-02 4:18 ` Ben Collins @ 2004-03-03 1:01 ` Dmitry Torokhov 0 siblings, 0 replies; 3+ messages in thread From: Dmitry Torokhov @ 2004-03-03 1:01 UTC (permalink / raw) To: Ben Collins; +Cc: linux-kernel On Monday 01 March 2004 11:18 pm, Ben Collins wrote: > On Mon, Mar 01, 2004 at 10:29:34PM -0500, Dmitry Torokhov wrote: > > Hi, > > > > Got the following oops when trying to power up DVD burner daisy chained to > > a WD hard drive. Reproducible with latest -bk as well as with ieee1394 patch > > from -mm tree. This is a regression as it was somewhat worked with earlier > > 2.6 kernels (well, earlier kernels could only log in into the last powered > > device, reconnecting to devices sitting earlier in chain was always failing), > > but there was no oopses. > > Let me know if this patch works for you. > It works very nicely, no more oopses and I can even access both daisy-chained devices simultaneously. Great job, thanks! -- Dmitry ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2004-03-03 1:01 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2004-03-02 3:29 2.6.4-rc1: OOPS when daisy-chaining ieee1394 devices Dmitry Torokhov 2004-03-02 4:18 ` Ben Collins 2004-03-03 1:01 ` Dmitry Torokhov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox