Bug 4802

Summary: rmmod ohci1394 hangs in klist_remove
Product: Drivers Reporter: Alexey Dobriyan (adobriyan)
Component: IEEE1394Assignee: Ben Collins (bcollins)
Status: CLOSED CODE_FIX    
Severity: normal CC: stelian
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.12-git5 Subsystem:
Regression: --- Bisected commit-id:
Attachments: .config for 2.6.12-mm2

Description Alexey Dobriyan 2005-06-26 09:32:09 UTC
From: Stelian Pop <stelian@popies.net>
http://marc.theaimsgroup.com/?t=111953816100002&r=1&w=2

Removing the ohci1394 module no longer works, sysrq+t shows:

rmmod         D 0FF7F724     0  6044   6038                     (NOTLB)
Call trace:
 [c00073ec] __switch_to+0x48/0x70
 [c02954c8] schedule+0x348/0x6f8
 [c02958f0] wait_for_completion+0x78/0xe4
 [c0294c1c] klist_remove+0x24/0x38
 [c01313ec] device_del+0x34/0xb8
 [c0131488] device_unregister+0x18/0x30
 [c0185afc] nodemgr_remove_ne+0x6c/0x88
 [c0185b2c] __nodemgr_remove_host_dev+0x14/0x28
 [c0131520] device_for_each_child+0x4c/0x74
 [c0185b68] nodemgr_remove_host_dev+0x28/0x6c
 [c018234c] __unregister_host+0xdc/0xe0
 [c0182e98] highlevel_remove_host+0x70/0xd8
 [c0181cc0] hpsb_remove_host+0x60/0x8c
 [e2218fec] ohci1394_pci_remove+0x5c/0x288 [ohci1394]
 [c00e02d0] pci_device_remove+0x60/0x64

This is with the latest Linus' git tree
[Thu, 23 Jun 2005 16:40:10 +0200 --adobriyan], on a Powerbook laptop (ppc).
Removing the module works with stock 2.4.12 [2.6.12? --adobriyan].
Comment 1 Stelian Pop 2005-06-26 10:29:53 UTC
It works on stock 2.6.12, of course.

Feel free to ask for additional information.
Comment 2 Andrew Morton 2005-06-26 13:04:20 UTC
hrm, works for me.

Can you test -mm2 and if it's still bad, send the .config?

Thanks.
Comment 3 Stelian Pop 2005-06-27 01:55:07 UTC
Ok, tested with 2.6.12-mm2 and it behaves the same. This is without any fireware
device attached in case it matters:

rmmod         D 0FF7F724     0  4334   4225                     (NOTLB)
Call trace:
 [c000742c] __switch_to+0x48/0x70
 [c029ec84] schedule+0x344/0x714
 [c029f0cc] wait_for_completion+0x78/0x114
 [c029e3dc] klist_remove+0x24/0x38
 [c013742c] device_del+0x34/0xb8
 [c01374c8] device_unregister+0x18/0x30
 [c018c7a4] nodemgr_remove_ne+0x6c/0x88
 [c018c7d4] __nodemgr_remove_host_dev+0x14/0x28
 [c0137560] device_for_each_child+0x4c/0x74
 [c018c810] nodemgr_remove_host_dev+0x28/0x6c
 [c0188f94] __unregister_host+0xdc/0xe0
 [c0189b40] highlevel_remove_host+0x70/0xd8
 [c0188868] hpsb_remove_host+0x60/0x8c
 [e2210fec] ohci1394_pci_remove+0x5c/0x288 [ohci1394]
 [c00e4f6c] pci_device_remove+0x60/0x64

I am attaching the .config.

Stelian.
Comment 4 Stelian Pop 2005-06-27 01:55:43 UTC
Created attachment 5219 [details]
.config for 2.6.12-mm2
Comment 5 Stelian Pop 2005-07-01 03:33:21 UTC
The following change fixes my problem:
http://kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d62c0f9fd2d3943a3eca85b490d86e1605000ccb

This bug report can be closed.

Thanks.