Bug 4407
Summary: | cdc_acm oops on audiovox 9900 if usb disconnect while in pppd call | ||
---|---|---|---|
Product: | Drivers | Reporter: | Matt Anderson (mda2376) |
Component: | USB | Assignee: | Greg Kroah-Hartman (greg) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | 185206054, brian, kernel-bugs, koapost, sfandino |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.10, 2.6.11-mm1 | Subsystem: | |
Regression: | --- | Bisected commit-id: | |
Attachments: |
exports usb_get_intf and usb_put_intf
fix tty reference counting problem |
Description
Matt Anderson
2005-03-26 18:32:33 UTC
This problem is fixed by better reference counting. The tty device has its parent removed by the disconnect. When the terminal is then closed the kernel crashes. This is fixed by the attached patch set. Created attachment 4809 [details]
exports usb_get_intf and usb_put_intf
Created attachment 4810 [details]
fix tty reference counting problem
I can confirm that these patches resolve the problem. Corresponding bug for Red Hat kernels: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=147176 Possible dup: bug 4418. *** Bug 4418 has been marked as a duplicate of this bug. *** I have tested these patches and can verify they resolve the problem, so marking this as verified. Can we please confirm that this fix was merged and that 2.6.12-rc5 is behaving properly? Thanks. These fixes are aparently not merged with 2.6.12-rc5 as the problem still persists. The two patches still fix the problem after being applied to 2.6.12-rc5 Ok, I've added these to my tree, will show up in the next -mm release and make it in after 2.6.12 is released. *** Bug 4715 has been marked as a duplicate of this bug. *** Hi Greg. When is this patch going to be applied? It's still not in 2.6.13-rc2, it's been 4 months! Huh? Huh? When? :) 2.6.13-rc2 should not need these patches, right? Please test to verify it. I have tested just a half an hour ago. Why do you think they're not needed? sorry, I said wrong. I have tested 2.6.12.2 (where it fails) and noted no significant difference (in acm) to 2.6.13-rc2. Is there a change somewhere else which would make the patch unnecessary? Yes, the usb core and driver core have changed. This patch should no longer be necessary. Can you please test 2.6.13-rc2 and let me know if it works or not? 2.6.13-rc2 says: Unable to handle kernel NULL pointer dereference at virtual address 00000000 printing eip: c0237d76 *pde = 00000000 Oops: 0000 [#1] PREEMPT SMP Modules linked in: cdc_acm ohci_hcd usbcore CPU: 0 EIP: 0060:[<c0237d76>] Tainted: G S VLI EFLAGS: 00010246 (2.6.13-rc2) EIP is at get_kobj_path_length+0x26/0x40 eax: 00000000 ebx: 00000000 ecx: ffffffff edx: d739d694 esi: 00000001 edi: 00000000 ebp: ffffffff esp: ceb3bd94 ds: 007b es: 007b ss: 0068 Process minicom (pid: 4285, threadinfo=ceb3a000 task=d37100c0) Stack: d736dc53 d739d614 d7d6c0f8 d739d694 c0237e0f d739d694 00000286 c04a58a8 c04a58c0 d736dc53 d739d614 d7d6c0f8 000003ad c02a1c37 d739d694 000000d0 00000286 00000286 d67fd6a0 00000013 ffffffff fffffffd d736dc29 00000000 Call Trace: [<c0237e0f>] kobject_get_path+0x1f/0x80 [<c02a1c37>] class_hotplug+0x137/0x210 [<c0238afe>] kobject_hotplug+0x1ee/0x300 [<c02a21eb>] class_device_del+0x8b/0x100 [<c02a2273>] class_device_unregister+0x13/0x30 [<d899d73c>] acm_tty_close+0xcc/0x110 [cdc_acm] [<c026f304>] release_dev+0x774/0x780 [<c0164b7b>] invalidate_inode_buffers+0x1b/0x90 [<c017d046>] clear_inode+0xb6/0xe0 [<c01a7158>] reiserfs_delete_inode+0x38/0xe0 [<c026f814>] tty_release+0x14/0x20 [<c016388b>] __fput+0x11b/0x130 [<c0161e5d>] filp_close+0x4d/0x80 [<c0161efd>] sys_close+0x6d/0x90 [<c0103175>] syscall_call+0x7/0xb Code: 90 8d 74 26 00 55 bd ff ff ff ff 57 56 be 01 00 00 00 53 8b 54 24 14 31 db 8d b6 00 00 00 00 8d bf 00 00 00 00 8b 3a 89 e9 89 d8 <f2> ae f7 d1 49 8b 52 24 8d 74 31 01 85 d2 75 ea 5b 89 f0 5e 5f I have verified that this is now fixed in 2.6.13-rc4 Great, thanks for verifying. |