Potential BUG in v2.6.39

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi All

I've tried using dummy_hcd with v2.6.39 and encountered a small issue.
When unloading the module there is a crash with the flowing call stack:

kernel BUG at /prj/qi-android/users/tlinder/SNPS-DCD/fs/dcache.c:419!
[   47.722100] invalid opcode: 0000 [#1] SMP
[   47.722100] Modules linked in: dummy_hcd(-)
[   47.722100]
[   47.722100] Pid: 1427, comm: modprobe Not tainted 2.6.39+ #415 Bochs Bochs
[   47.722100] EIP: 0060:[<c10c5fc3>] EFLAGS: 00000246 CPU: 0
[   47.722100] EIP is at dput+0x2b/0xbb
[   47.722100] EAX: 00000000 EBX: d71a2600 ECX: c167c940 EDX: 00000f0f
[   47.722100] ESI: d71a264c EDI: d71a2670 EBP: d6c47df8 ESP: d6c47df0
[   47.722100]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
[   47.722100] Process modprobe (pid: 1427, ti=d6c46000 task=d6c404e0
task.ti=d6c46000)
[   47.722100] Stack:
[   47.722100]  d71a2600 00000000 d6c47e28 c12bf007 0000002f c171f640
d71a2670 d71a264c
[   47.722100]  d717d580 d717d85c d71a2500 d77df800 00000000 00000004
d6c47e44 c12bf43b
[   47.722100]  c10b43c3 c12b013e c169fa6c 00000000 00000004 d6c47e60
c1441845 d77df800
[   47.722100] Call Trace:
[   47.722100]  [<c12bf007>] fs_remove_file+0x13d/0x15f
[   47.722100]  [<c12bf43b>] usbfs_notify+0x1fc/0x25a
[   47.722100]  [<c10b43c3>] ? kfree+0xd0/0xd9
[   47.722100]  [<c12b013e>] ? usb_release_dev+0x2f/0x45
[   47.722100]  [<c1441845>] notifier_call_chain+0x26/0x48
[   47.722100]  [<c10488a1>] __blocking_notifier_call_chain+0x37/0x4c
[   47.722100]  [<c10488c2>] blocking_notifier_call_chain+0xc/0xe
[   47.722100]  [<c12bd504>] usb_notify_remove_bus+0x14/0x16
[   47.722100]  [<c12b4250>] usb_deregister_bus+0x49/0x5c
[   47.722100]  [<c12b436e>] usb_remove_hcd+0x10b/0x119
[   47.722100]  [<d881615f>] dummy_hcd_remove+0x13/0x29 [dummy_hcd]
[   47.722100]  [<c1222d32>] platform_drv_remove+0xc/0xe
[   47.722100]  [<c1221d1d>] __device_release_driver+0x45/0x7b
[   47.722100]  [<c1221de6>] device_release_driver+0x18/0x23
[   47.722100]  [<c12213ba>] bus_remove_device+0x78/0x85
[   47.722100]  [<c12200eb>] device_del+0xe9/0x144
[   47.722100]  [<c1223173>] platform_device_del+0x15/0x4b
[   47.722100]  [<c12234fc>] platform_device_unregister+0xb/0x15
[   47.722100]  [<d8817f17>] cleanup+0x17/0x2d [dummy_hcd]
[   47.722100]  [<c10591f3>] sys_delete_module+0x17e/0x1d7
[   47.722100]  [<c10a6b2f>] ? remove_vma+0x46/0x4c
[   47.722100]  [<c10a77bc>] ? do_munmap+0x217/0x231
[   47.722100]  [<c1443fcc>] sysenter_do_call+0x12/0x22
[   47.722100] Code: 55 89 e5 56 53 85 c0 89 c3 0f 84 a8 00 00 00 83 78 48
01 75 05 e8 dd 7f 37 00 8d 73 4c 89 f0 e8 fb 8e 37 00 8b 43 48 85 c0 75 04
<0f> 0b eb fe 83 f8 01 76 08 48 89 43 48 fe 06 eb 7b 66 83 3b 00
[   47.722100] EIP: [<c10c5fc3>] dput+0x2b/0xbb SS:ESP 0068:d6c47df0
[   47.727248] ---[ end trace 7508933c4c84d72a ]---

I ran bisect and found out that the commit that caused it is:
commit 64252c75a2196a0cf1e0d3777143ecfe0e3ae650
Author: Sage Weil <sage@xxxxxxxxxxxx>
Date:   Tue May 24 13:06:05 2011 -0700

    vfs: remove dget() from dentry_unhash()

    This serves no useful purpose that I can discern.  All callers (rename,
    rmdir) hold their own reference to the dentry.

    A quick audit of all file systems showed no relevant checks on the value
    of d_count in vfs_rmdir/vfs_rename_dir paths.

    Signed-off-by: Sage Weil <sage@xxxxxxxxxxxx>
    Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx>

It seems that this commit was part of a series so the issue was fixed only
when I reverted all of the flowing commits:
   Revert "vfs: dentry_unhash immediately prior to rmdir"
    This reverts commit 48293699a09324d2e3c66bd53d10eed6d67937a0.

    Revert "vfs: remove dget() from dentry_unhash()"
    This reverts commit 64252c75a2196a0cf1e0d3777143ecfe0e3ae650.

    Revert "vfs: push dentry_unhash on rmdir into file systems"
    This reverts commit 79bf7c732b5ff75b96022ed9d29181afd3d2509c.

    Revert "vfs: push dentry_unhash on rename_dir into file systems"
    This reverts commit e4eaac06bcccb2a70bca6a2de9871882dce2aa14.

    Revert "vfs: update dentry_unhash() comment"
    This reverts commit a71905f0db41d4b2b01044fb40f97656fefc44a7.

    Revert "vfs: fix vfs_rename_dir for FS_RENAME_DOES_D_MOVE filesystems"
    This reverts commit b5afd2c406f5c6272d916fd705f44f070fbbc0ba.

    Revert "vfs: clean up vfs_rmdir"
    This reverts commit 912dbc15d953791f013b0c64a8093ab0490e5f40.

    Revert "vfs: clean up vfs_rename_dir"
    This reverts commit 9055cba711891a6313232629cd6bbca7c901e07f.

    Revert "vfs: clean up vfs_rename_other"
    This reverts commit 51892bbb57e87854c27c105317797823f8891e68.

Unfortunately I'm not familiar with that part of the code at all so I
would appreciate your assistance on fixing this properly.

Thanks,
Tanya Brokhman
-- 
Sent by an consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.


--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux