Hi Michael, Thank you for the patch. On Thursday 02 October 2014 18:09:47 Michael Grzeschik wrote: > Currently the uvc_driver is not cleaning up its child devices if a > device is still in use. It leads to orphaned devices which are not > sitting on any interface. They get cleaned up on uvc_delete which will > be called on uvc_remove after the userspace application is closing the > stream. When PM_RUNTIME is used in the kernel, this leads to the > following backtrace for missing sysfs entries in the orphaned kobjects. > > This patch is moving the device cleanup code for the child devices from > uvc_delete to uvc_unregister_video. It is an *HACK* workaround which > is ment to initiate the discussion for a proper solution. Does https://patchwork.linuxtv.org/patch/26561/ help ? The usb_put_intf() and usb_put_dev() calls could be moved to the end of the function to fix the media_device_unregister() warning. > This behaviour can simply be reproduced by the following command: > > $ gst-launch v4l2src device=/dev/video0 ! fakesink > > -> Now disconnect the UVC Camera while the stream is still open and used > > $ <Ctrl-C> # to close the running gstreamer pipeline > > [ 258.012048] ------------[ cut here ]------------ > [ 258.021206] WARNING: CPU: 0 PID: 280 at fs/sysfs/group.c:220 > sysfs_remove_group+0xb4/0xb8() [ 258.031728] sysfs group 80c79200 not > found for kobject 'event0' [ 258.039383] Modules linked in: lock(O) > usb_f_ecm g_ether usb_f_rndis u_ether libcomposite coda ath6kl_sdio > ath6kl_core [ 258.051098] CPU: 0 PID: 280 Comm: v4l2filter0:src Tainted: G > O 3.17.0-rc6-20140925-1+ #10 [ 258.063318] Backtrace: > [ 258.066403] [<80012ca4>] (dump_backtrace) from [<80012f94>] > (show_stack+0x18/0x1c) [ 258.077579] r6:000000dc r5:00000009 r4:d81f7ba8 > r3:00000000 > [ 258.084549] [<80012f7c>] (show_stack) from [<807872e4>] > (dump_stack+0x24/0x28) [ 258.091791] [<807872c0>] (dump_stack) from > [<80025140>] (warn_slowpath_common+0x78/0x90) [ 258.100770] [<800250c8>] > (warn_slowpath_common) from [<80025190>] (warn_slowpath_fmt+0x38/0x40) [ > 258.109818] r8:00000000 r7:da00a218 r6:da0520f0 r5:00000000 r4:80c79200 [ > 258.116675] [<8002515c>] (warn_slowpath_fmt) from [<8015bb4c>] > (sysfs_remove_group+0xb4/0xb8) [ 258.125824] r3:80c79200 r2:8098e22c > [ 258.129463] [<8015ba98>] (sysfs_remove_group) from [<803ec5a4>] > (dpm_sysfs_remove+0x54/0x58) [ 258.138500] r6:da0520e8 r5:da0520f0 > r4:80c79200 > [ 258.143195] [<803ec550>] (dpm_sysfs_remove) from [<803e3664>] > (device_del+0x4c/0x1b0) [ 258.151790] r6:da052004 r5:da0520e8 r4:da052000 > r3:da306200 > [ 258.157813] [<803e3618>] (device_del) from [<804eb7a8>] > (evdev_disconnect+0x20/0x48) [ 258.166190] r7:da00a1b4 r6:da052004 > r5:da0520e8 r4:da052000 > [ 258.172637] [<804eb788>] (evdev_disconnect) from [<804e694c>] > (__input_unregister_device+0xb0/0x150) [ 258.182282] r6:da00a000 > r5:da00a448 r4:da00a434 r3:804eb788 > [ 258.188064] [<804e689c>] (__input_unregister_device) from [<804e7b50>] > (input_unregister_device+0x50/0x78) [ 258.198271] r7:da051c00 r6:da009000 > r5:81506254 r4:da00a000 > [ 258.204013] [<804e7b00>] (input_unregister_device) from [<8052eba8>] > (uvc_status_cleanup+0x38/0x3c) [ 258.213557] r4:da009000 r3:00000000 > [ 258.217221] [<8052eb70>] (uvc_status_cleanup) from [<80524e64>] > (uvc_delete+0x28/0x140) [ 258.225704] r4:da051c58 r3:00000000 > [ 258.229322] [<80524e3c>] (uvc_delete) from [<80525098>] > (uvc_release+0x40/0x44) [ 258.237136] r8:00000000 r7:da051c00 r6:da009428 > r5:81506254 r4:da051c58 r3:da00951c [ 258.245495] [<80525058>] > (uvc_release) from [<80500a0c>] (v4l2_device_release+0xd0/0xf4) [ > 258.253608] [<8050093c>] (v4l2_device_release) from [<803e30f4>] > (device_release+0x34/0x98) [ 258.262529] r8:da054070 r7:da026a40 > r6:da021c00 r5:da051c58 r4:da051c60 r3:8050093c [ 258.270519] [<803e30c0>] > (device_release) from [<80323fd4>] (kobject_cleanup+0x98/0x1b8) [ > 258.279105] r6:80c78848 r5:da051c60 r4:80cb61e8 r3:803e30c0 > [ 258.284887] [<80323f3c>] (kobject_cleanup) from [<80323e6c>] > (kobject_put+0x50/0x7c) [ 258.292634] r7:da054070 r6:da562258 r5:00000000 > r4:da051c60 > [ 258.298839] [<80323e1c>] (kobject_put) from [<803e350c>] > (put_device+0x1c/0x20) [ 258.306654] r4:da051c00 > [ 258.309221] [<803e34f0>] (put_device) from [<804ff73c>] > (v4l2_release+0x58/0x7c) [ 258.317133] [<804ff6e4>] (v4l2_release) from > [<800f1444>] (__fput+0x9c/0x220) [ 258.324554] r5:da15e190 r4:da3c8dc0 > [ 258.328171] [<800f13a8>] (__fput) from [<800f1624>] (____fput+0x10/0x14) > [ 258.335344] r10:da306200 r9:da30c620 r8:00418004 r7:da306200 r6:80cc2180 > r5:da3ee280 [ 258.343252] r4:da306564 > [ 258.346086] [<800f1614>] (____fput) from [<8003d198>] > (task_work_run+0xa0/0xe4) [ 258.353407] [<8003d0f8>] (task_work_run) from > [<80025cb8>] (do_exit+0x280/0x8d0) [ 258.361489] r7:da30c624 r6:da3c229c > r5:da306574 r4:da3c2240 > [ 258.367266] [<80025a38>] (do_exit) from [<8002722c>] > (do_group_exit+0x44/0xb8) [ 258.375011] r7:da30c624 > [ 258.377584] [<800271e8>] (do_group_exit) from [<80031510>] > (get_signal+0x254/0x6c8) [ 258.385736] r7:da30c624 r6:d81f7ed4 > r5:00000009 r4:d81f6000 > [ 258.391476] [<800312bc>] (get_signal) from [<80012190>] > (do_signal+0x6c/0x3f4) [ 258.399230] r10:00000000 r9:d81f6000 r8:fffffe00 > r7:d81f7ec0 r6:76ca6de6 r5:76ca6de4 [ 258.407190] r4:d81f7fb0 > [ 258.409751] [<80012124>] (do_signal) from [<800126c4>] > (do_work_pending+0xa8/0xe8) [ 258.418003] r10:00000000 r9:d81f6000 > r8:8000f3a4 r7:d81f7fb0 r6:8000f3a4 r5:d81f6000 [ 258.425959] r4:d81f6008 > [ 258.428519] [<8001261c>] (do_work_pending) from [<8000f238>] > (work_pending+0xc/0x20) [ 258.436967] r7:00000036 r6:756065a8 r5:0193d3f8 > r4:76b77b24 > [ 258.442692] ---[ end trace cd2cc911d2f600ac ]--- > [ 258.481579] ------------[ cut here ]------------ > [ 258.487313] WARNING: CPU: 0 PID: 280 at fs/sysfs/group.c:220 > sysfs_remove_group+0xb4/0xb8() [ 258.496077] sysfs group 80c79200 not > found for kobject 'input0' [ 258.502005] Modules linked in: lock(O) > usb_f_ecm g_ether usb_f_rndis u_ether libcomposite coda ath6kl_sdio > ath6kl_core [ 258.513158] CPU: 0 PID: 280 Comm: v4l2filter0:src Tainted: G > W O 3.17.0-rc6-20140925-1+ #10 [ 258.523587] Backtrace: > [ 258.526208] [<80012ca4>] (dump_backtrace) from [<80012f94>] > (show_stack+0x18/0x1c) [ 258.533914] r6:000000dc r5:00000009 r4:d81f7bc8 > r3:00000000 > [ 258.540589] [<80012f7c>] (show_stack) from [<807872e4>] > (dump_stack+0x24/0x28) [ 258.548471] [<807872c0>] (dump_stack) from > [<80025140>] (warn_slowpath_common+0x78/0x90) [ 258.557029] [<800250c8>] > (warn_slowpath_common) from [<80025190>] (warn_slowpath_fmt+0x38/0x40) [ > 258.566077] r8:00000000 r7:da051020 r6:da00a220 r5:00000000 r4:80c79200 [ > 258.572879] [<8002515c>] (warn_slowpath_fmt) from [<8015bb4c>] > (sysfs_remove_group+0xb4/0xb8) [ 258.581992] r3:80c79200 r2:8098e22c > [ 258.585681] [<8015ba98>] (sysfs_remove_group) from [<803ec5a4>] > (dpm_sysfs_remove+0x54/0x58) [ 258.594810] r6:da00a218 r5:da00a220 > r4:80c79200 > [ 258.599506] [<803ec550>] (dpm_sysfs_remove) from [<803e3664>] > (device_del+0x4c/0x1b0) [ 258.607982] r6:da00a000 r5:da00a218 r4:00000008 > r3:da306200 > [ 258.613738] [<803e3618>] (device_del) from [<804e69d0>] > (__input_unregister_device+0x134/0x150) [ 258.623046] r7:da00a1b4 > r6:da00a000 r5:00000007 r4:00000008 > [ 258.629199] [<804e689c>] (__input_unregister_device) from [<804e7b50>] > (input_unregister_device+0x50/0x78) [ 258.639498] r7:da051c00 r6:da009000 > r5:81506254 r4:da00a000 > [ 258.646041] [<804e7b00>] (input_unregister_device) from [<8052eba8>] > (uvc_status_cleanup+0x38/0x3c) [ 258.655588] r4:da009000 r3:00000000 > [ 258.659207] [<8052eb70>] (uvc_status_cleanup) from [<80524e64>] > (uvc_delete+0x28/0x140) [ 258.667690] r4:da051c58 r3:00000000 > [ 258.671308] [<80524e3c>] (uvc_delete) from [<80525098>] > (uvc_release+0x40/0x44) [ 258.679116] r8:00000000 r7:da051c00 r6:da009428 > r5:81506254 r4:da051c58 r3:da00951c [ 258.687002] [<80525058>] > (uvc_release) from [<80500a0c>] (v4l2_device_release+0xd0/0xf4) [ > 258.695592] [<8050093c>] (v4l2_device_release) from [<803e30f4>] > (device_release+0x34/0x98) [ 258.703953] r8:da054070 r7:da026a40 > r6:da021c00 r5:da051c58 r4:da051c60 r3:8050093c [ 258.712128] [<803e30c0>] > (device_release) from [<80323fd4>] (kobject_cleanup+0x98/0x1b8) [ > 258.720734] r6:80c78848 r5:da051c60 r4:80cb61e8 r3:803e30c0 > [ 258.726516] [<80323f3c>] (kobject_cleanup) from [<80323e6c>] > (kobject_put+0x50/0x7c) [ 258.734731] r7:da054070 r6:da562258 r5:00000000 > r4:da051c60 > [ 258.740463] [<80323e1c>] (kobject_put) from [<803e350c>] > (put_device+0x1c/0x20) [ 258.748243] r4:da051c00 > [ 258.750807] [<803e34f0>] (put_device) from [<804ff73c>] > (v4l2_release+0x58/0x7c) [ 258.758684] [<804ff6e4>] (v4l2_release) from > [<800f1444>] (__fput+0x9c/0x220) [ 258.766125] r5:da15e190 r4:da3c8dc0 > [ 258.769743] [<800f13a8>] (__fput) from [<800f1624>] (____fput+0x10/0x14) > [ 258.776915] r10:da306200 r9:da30c620 r8:00418004 r7:da306200 r6:80cc2180 > r5:da3ee280 [ 258.785114] r4:da306564 > [ 258.787687] [<800f1614>] (____fput) from [<8003d198>] > (task_work_run+0xa0/0xe4) [ 258.795532] [<8003d0f8>] (task_work_run) from > [<80025cb8>] (do_exit+0x280/0x8d0) [ 258.802936] r7:da30c624 r6:da3c229c > r5:da306574 r4:da3c2240 > [ 258.808947] [<80025a38>] (do_exit) from [<8002722c>] > (do_group_exit+0x44/0xb8) [ 258.816648] r7:da30c624 > [ 258.819219] [<800271e8>] (do_group_exit) from [<80031510>] > (get_signal+0x254/0x6c8) [ 258.827360] r7:da30c624 r6:d81f7ed4 > r5:00000009 r4:d81f6000 > [ 258.833098] [<800312bc>] (get_signal) from [<80012190>] > (do_signal+0x6c/0x3f4) [ 258.840828] r10:00000000 r9:d81f6000 r8:fffffe00 > r7:d81f7ec0 r6:76ca6de6 r5:76ca6de4 [ 258.848786] r4:d81f7fb0 > [ 258.851346] [<80012124>] (do_signal) from [<800126c4>] > (do_work_pending+0xa8/0xe8) [ 258.859609] r10:00000000 r9:d81f6000 > r8:8000f3a4 r7:d81f7fb0 r6:8000f3a4 r5:d81f6000 [ 258.867567] r4:d81f6008 > [ 258.870126] [<8001261c>] (do_work_pending) from [<8000f238>] > (work_pending+0xc/0x20) [ 258.878543] r7:00000036 r6:756065a8 r5:0193d3f8 > r4:76b77b24 > [ 258.884530] ---[ end trace cd2cc911d2f600ad ]--- > [ 258.892863] ------------[ cut here ]------------ > [ 258.898189] WARNING: CPU: 0 PID: 280 at fs/sysfs/group.c:220 > sysfs_remove_group+0xb4/0xb8() [ 258.906811] sysfs group 80c8a764 not > found for kobject 'input0' [ 258.912736] Modules linked in: lock(O) > usb_f_ecm g_ether usb_f_rndis u_ether libcomposite coda ath6kl_sdio > ath6kl_core [ 258.923850] CPU: 0 PID: 280 Comm: v4l2filter0:src Tainted: G > W O 3.17.0-rc6-20140925-1+ #10 [ 258.933569] Backtrace: > [ 258.936097] [<80012ca4>] (dump_backtrace) from [<80012f94>] > (show_stack+0x18/0x1c) [ 258.943671] r6:000000dc r5:00000009 r4:d81f7bb0 > r3:00000000 > [ 258.949877] [<80012f7c>] (show_stack) from [<807872e4>] > (dump_stack+0x24/0x28) [ 258.957588] [<807872c0>] (dump_stack) from > [<80025140>] (warn_slowpath_common+0x78/0x90) [ 258.965957] [<800250c8>] > (warn_slowpath_common) from [<80025190>] (warn_slowpath_fmt+0x38/0x40) [ > 258.974918] r8:00000000 r7:80c8a578 r6:da00a220 r5:00000000 r4:80c8a764 [ > 258.981703] [<8002515c>] (warn_slowpath_fmt) from [<8015bb4c>] > (sysfs_remove_group+0xb4/0xb8) [ 258.990724] r3:80c8a764 r2:8098e22c > [ 258.994444] [<8015ba98>] (sysfs_remove_group) from [<8015bc04>] > (sysfs_remove_groups+0x2c/0x3c) [ 259.003147] r6:80c8a590 r5:da00a220 > r4:80c8a624 > [ 259.008319] [<8015bbd8>] (sysfs_remove_groups) from [<803e303c>] > (device_remove_attrs+0x58/0x74) [ 259.017585] r5:da00a220 r4:da00a218 > [ 259.021207] [<803e2fe4>] (device_remove_attrs) from [<803e372c>] > (device_del+0x114/0x1b0) [ 259.029860] r7:da051020 r6:da00a220 > r5:da00a218 r4:dad9be5c > [ 259.035642] [<803e3618>] (device_del) from [<804e69d0>] > (__input_unregister_device+0x134/0x150) [ 259.044806] r7:da00a1b4 > r6:da00a000 r5:00000007 r4:00000008 > [ 259.050541] [<804e689c>] (__input_unregister_device) from [<804e7b50>] > (input_unregister_device+0x50/0x78) [ 259.060693] r7:da051c00 r6:da009000 > r5:81506254 r4:da00a000 > [ 259.066505] [<804e7b00>] (input_unregister_device) from [<8052eba8>] > (uvc_status_cleanup+0x38/0x3c) [ 259.076023] r4:da009000 r3:00000000 > [ 259.079642] [<8052eb70>] (uvc_status_cleanup) from [<80524e64>] > (uvc_delete+0x28/0x140) [ 259.088106] r4:da051c58 r3:00000000 > [ 259.091722] [<80524e3c>] (uvc_delete) from [<80525098>] > (uvc_release+0x40/0x44) [ 259.099491] r8:00000000 r7:da051c00 r6:da009428 > r5:81506254 r4:da051c58 r3:da00951c [ 259.107368] [<80525058>] > (uvc_release) from [<80500a0c>] (v4l2_device_release+0xd0/0xf4) [ > 259.115928] [<8050093c>] (v4l2_device_release) from [<803e30f4>] > (device_release+0x34/0x98) [ 259.124546] r8:da054070 r7:da026a40 > r6:da021c00 r5:da051c58 r4:da051c60 r3:8050093c [ 259.132381] [<803e30c0>] > (device_release) from [<80323fd4>] (kobject_cleanup+0x98/0x1b8) [ > 259.140968] r6:80c78848 r5:da051c60 r4:80cb61e8 r3:803e30c0 > [ 259.146747] [<80323f3c>] (kobject_cleanup) from [<80323e6c>] > (kobject_put+0x50/0x7c) [ 259.154978] r7:da054070 r6:da562258 r5:00000000 > r4:da051c60 > [ 259.160711] [<80323e1c>] (kobject_put) from [<803e350c>] > (put_device+0x1c/0x20) [ 259.168496] r4:da051c00 > [ 259.171060] [<803e34f0>] (put_device) from [<804ff73c>] > (v4l2_release+0x58/0x7c) [ 259.178935] [<804ff6e4>] (v4l2_release) from > [<800f1444>] (__fput+0x9c/0x220) [ 259.186343] r5:da15e190 r4:da3c8dc0 > [ 259.189959] [<800f13a8>] (__fput) from [<800f1624>] (____fput+0x10/0x14) > [ 259.197161] r10:da306200 r9:da30c620 r8:00418004 r7:da306200 r6:80cc2180 > r5:da3ee280 [ 259.205361] r4:da306564 > [ 259.207932] [<800f1614>] (____fput) from [<8003d198>] > (task_work_run+0xa0/0xe4) [ 259.215734] [<8003d0f8>] (task_work_run) from > [<80025cb8>] (do_exit+0x280/0x8d0) [ 259.223137] r7:da30c624 r6:da3c229c > r5:da306574 r4:da3c2240 > [ 259.229130] [<80025a38>] (do_exit) from [<8002722c>] > (do_group_exit+0x44/0xb8) [ 259.236844] r7:da30c624 > [ 259.239410] [<800271e8>] (do_group_exit) from [<80031510>] > (get_signal+0x254/0x6c8) [ 259.247760] r7:da30c624 r6:d81f7ed4 > r5:00000009 r4:d81f6000 > [ 259.253505] [<800312bc>] (get_signal) from [<80012190>] > (do_signal+0x6c/0x3f4) [ 259.261226] r10:00000000 r9:d81f6000 r8:fffffe00 > r7:d81f7ec0 r6:76ca6de6 r5:76ca6de4 [ 259.269215] r4:d81f7fb0 > [ 259.271773] [<80012124>] (do_signal) from [<800126c4>] > (do_work_pending+0xa8/0xe8) [ 259.280054] r10:00000000 r9:d81f6000 > r8:8000f3a4 r7:d81f7fb0 r6:8000f3a4 r5:d81f6000 [ 259.288010] r4:d81f6008 > [ 259.290568] [<8001261c>] (do_work_pending) from [<8000f238>] > (work_pending+0xc/0x20) [ 259.298977] r7:00000036 r6:756065a8 r5:0193d3f8 > r4:76b77b24 > [ 259.304748] ---[ end trace cd2cc911d2f600ae ]--- > [ 259.313908] ------------[ cut here ]------------ > [ 259.319437] WARNING: CPU: 0 PID: 280 at fs/sysfs/group.c:220 > sysfs_remove_group+0xb4/0xb8() [ 259.328075] sysfs group 80c8a630 not > found for kobject 'input0' [ 259.334001] Modules linked in: lock(O) > usb_f_ecm g_ether usb_f_rndis u_ether libcomposite coda ath6kl_sdio > ath6kl_core [ 259.345180] CPU: 0 PID: 280 Comm: v4l2filter0:src Tainted: G > W O 3.17.0-rc6-20140925-1+ #10 [ 259.354876] Backtrace: > [ 259.357359] [<80012ca4>] (dump_backtrace) from [<80012f94>] > (show_stack+0x18/0x1c) [ 259.365406] r6:000000dc r5:00000009 r4:d81f7bb0 > r3:00000000 > [ 259.371147] [<80012f7c>] (show_stack) from [<807872e4>] > (dump_stack+0x24/0x28) [ 259.378856] [<807872c0>] (dump_stack) from > [<80025140>] (warn_slowpath_common+0x78/0x90) [ 259.387252] [<800250c8>] > (warn_slowpath_common) from [<80025190>] (warn_slowpath_fmt+0x38/0x40) [ > 259.396262] r8:00000000 r7:80c8a578 r6:da00a220 r5:00000000 r4:80c8a630 [ > 259.403049] [<8002515c>] (warn_slowpath_fmt) from [<8015bb4c>] > (sysfs_remove_group+0xb4/0xb8) [ 259.412058] r3:80c8a630 r2:8098e22c > [ 259.415748] [<8015ba98>] (sysfs_remove_group) from [<8015bc04>] > (sysfs_remove_groups+0x2c/0x3c) [ 259.424924] r6:80c8a590 r5:da00a220 > r4:80c8a628 > [ 259.429604] [<8015bbd8>] (sysfs_remove_groups) from [<803e303c>] > (device_remove_attrs+0x58/0x74) [ 259.438873] r5:da00a220 r4:da00a218 > [ 259.442494] [<803e2fe4>] (device_remove_attrs) from [<803e372c>] > (device_del+0x114/0x1b0) [ 259.451143] r7:da051020 r6:da00a220 > r5:da00a218 r4:dad9be5c > [ 259.459353] [<803e3618>] (device_del) from [<804e69d0>] > (__input_unregister_device+0x134/0x150) [ 259.468788] r7:da00a1b4 > r6:da00a000 r5:00000007 r4:00000008 > [ 259.474673] [<804e689c>] (__input_unregister_device) from [<804e7b50>] > (input_unregister_device+0x50/0x78) [ 259.484912] r7:da051c00 r6:da009000 > r5:81506254 r4:da00a000 > [ 259.490656] [<804e7b00>] (input_unregister_device) from [<8052eba8>] > (uvc_status_cleanup+0x38/0x3c) [ 259.500189] r4:da009000 r3:00000000 > [ 259.503808] [<8052eb70>] (uvc_status_cleanup) from [<80524e64>] > (uvc_delete+0x28/0x140) [ 259.512287] r4:da051c58 r3:00000000 > [ 259.515948] [<80524e3c>] (uvc_delete) from [<80525098>] > (uvc_release+0x40/0x44) [ 259.523260] r8:00000000 r7:da051c00 r6:da009428 > r5:81506254 r4:da051c58 r3:da00951c [ 259.531558] [<80525058>] > (uvc_release) from [<80500a0c>] (v4l2_device_release+0xd0/0xf4) [ > 259.540130] [<8050093c>] (v4l2_device_release) from [<803e30f4>] > (device_release+0x34/0x98) [ 259.548753] r8:da054070 r7:da026a40 > r6:da021c00 r5:da051c58 r4:da051c60 r3:8050093c [ 259.556668] [<803e30c0>] > (device_release) from [<80323fd4>] (kobject_cleanup+0x98/0x1b8) [ > 259.565261] r6:80c78848 r5:da051c60 r4:80cb61e8 r3:803e30c0 > [ 259.570995] [<80323f3c>] (kobject_cleanup) from [<80323e6c>] > (kobject_put+0x50/0x7c) [ 259.579214] r7:da054070 r6:da562258 r5:00000000 > r4:da051c60 > [ 259.584993] [<80323e1c>] (kobject_put) from [<803e350c>] > (put_device+0x1c/0x20) [ 259.592305] r4:da051c00 > [ 259.595383] [<803e34f0>] (put_device) from [<804ff73c>] > (v4l2_release+0x58/0x7c) [ 259.602793] [<804ff6e4>] (v4l2_release) from > [<800f1444>] (__fput+0x9c/0x220) [ 259.610614] r5:da15e190 r4:da3c8dc0 > [ 259.614503] [<800f13a8>] (__fput) from [<800f1624>] (____fput+0x10/0x14) > [ 259.621212] r10:da306200 r9:da30c620 r8:00418004 r7:da306200 r6:80cc2180 > r5:da3ee280 [ 259.629413] r4:da306564 > [ 259.631980] [<800f1614>] (____fput) from [<8003d198>] > (task_work_run+0xa0/0xe4) [ 259.639994] [<8003d0f8>] (task_work_run) from > [<80025cb8>] (do_exit+0x280/0x8d0) [ 259.647692] r7:da30c624 r6:da3c229c > r5:da306574 r4:da3c2240 > [ 259.653422] [<80025a38>] (do_exit) from [<8002722c>] > (do_group_exit+0x44/0xb8) [ 259.661117] r7:da30c624 > [ 259.663688] [<800271e8>] (do_group_exit) from [<80031510>] > (get_signal+0x254/0x6c8) [ 259.671819] r7:da30c624 r6:d81f7ed4 > r5:00000009 r4:d81f6000 > [ 259.677600] [<800312bc>] (get_signal) from [<80012190>] > (do_signal+0x6c/0x3f4) [ 259.685289] r10:00000000 r9:d81f6000 r8:fffffe00 > r7:d81f7ec0 r6:76ca6de6 r5:76ca6de4 [ 259.693197] r4:d81f7fb0 > [ 259.696049] [<80012124>] (do_signal) from [<800126c4>] > (do_work_pending+0xa8/0xe8) [ 259.703623] r10:00000000 r9:d81f6000 > r8:8000f3a4 r7:d81f7fb0 r6:8000f3a4 r5:d81f6000 [ 259.712000] r4:d81f6008 > [ 259.714816] [<8001261c>] (do_work_pending) from [<8000f238>] > (work_pending+0xc/0x20) [ 259.722563] r7:00000036 r6:756065a8 r5:0193d3f8 > r4:76b77b24 > [ 259.728745] ---[ end trace cd2cc911d2f600af ]--- > [ 259.735876] deleting dev: da0090a8 > [ 259.739317] in sysfs_remove_group: power > [ 259.743245] ------------[ cut here ]------------ > [ 259.748707] WARNING: CPU: 0 PID: 280 at fs/sysfs/group.c:220 > sysfs_remove_group+0xb4/0xb8() [ 259.757392] sysfs group 80c79200 not > found for kobject 'media1' [ 259.763319] Modules linked in: lock(O) > usb_f_ecm g_ether usb_f_rndis u_ether libcomposite coda ath6kl_sdio > ath6kl_core [ 259.774565] CPU: 0 PID: 280 Comm: v4l2filter0:src Tainted: G > W O 3.17.0-rc6-20140925-1+ #10 [ 259.783788] Backtrace: > [ 259.786771] [<80012ca4>] (dump_backtrace) from [<80012f94>] > (show_stack+0x18/0x1c) [ 259.794880] r6:000000dc r5:00000009 r4:d81f7bc8 > r3:00000000 > [ 259.800622] [<80012f7c>] (show_stack) from [<807872e4>] > (dump_stack+0x24/0x28) [ 259.808395] [<807872c0>] (dump_stack) from > [<80025140>] (warn_slowpath_common+0x78/0x90) [ 259.816778] [<800250c8>] > (warn_slowpath_common) from [<80025190>] (warn_slowpath_fmt+0x38/0x40) [ > 259.825750] r8:00000000 r7:da051020 r6:da0090b0 r5:00000000 r4:80c79200 [ > 259.832537] [<8002515c>] (warn_slowpath_fmt) from [<8015bb4c>] > (sysfs_remove_group+0xb4/0xb8) [ 259.841570] r3:80c79200 r2:8098e22c > [ 259.845245] [<8015ba98>] (sysfs_remove_group) from [<803ec5a4>] > (dpm_sysfs_remove+0x54/0x58) [ 259.853687] r6:da0090a8 r5:da0090b0 > r4:80c79200 > [ 259.858846] [<803ec550>] (dpm_sysfs_remove) from [<803e3664>] > (device_del+0x4c/0x1b0) [ 259.867159] r6:da009098 r5:da0090a8 r4:da0090a8 > r3:da306200 > [ 259.872893] [<803e3618>] (device_del) from [<803e37f4>] > (device_unregister+0x2c/0x6c) [ 259.881206] r7:da051c00 r6:da009098 > r5:da00939c r4:da0090a8 > [ 259.886987] [<803e37c8>] (device_unregister) from [<804fe768>] > (media_devnode_unregister+0x58/0x5c) [ 259.896543] r4:da0090a0 > r3:600f0013 > [ 259.900164] [<804fe710>] (media_devnode_unregister) from [<804fe330>] > (media_device_unregister+0x50/0x54) [ 259.910260] r4:da00939c r3:00000001 > [ 259.913881] [<804fe2e0>] (media_device_unregister) from [<80524f74>] > (uvc_delete+0x138/0x140) [ 259.922900] r6:da009000 r5:81506254 > r4:da051c58 r3:00000001 > [ 259.928674] [<80524e3c>] (uvc_delete) from [<80525098>] > (uvc_release+0x40/0x44) [ 259.936451] r8:00000000 r7:da051c00 r6:da009428 > r5:81506254 r4:da051c58 r3:da00951c [ 259.944539] [<80525058>] > (uvc_release) from [<80500a0c>] (v4l2_device_release+0xd0/0xf4) [ > 259.952645] [<8050093c>] (v4l2_device_release) from [<803e30f4>] > (device_release+0x34/0x98) [ 259.961478] r8:da054070 r7:da026a40 > r6:da021c00 r5:da051c58 r4:da051c60 r3:8050093c [ 259.969371] [<803e30c0>] > (device_release) from [<80323fd4>] (kobject_cleanup+0x98/0x1b8) [ > 259.977967] r6:80c78848 r5:da051c60 r4:80cb61e8 r3:803e30c0 > [ 259.983702] [<80323f3c>] (kobject_cleanup) from [<80323e6c>] > (kobject_put+0x50/0x7c) [ 259.991921] r7:da054070 r6:da562258 r5:00000000 > r4:da051c60 > [ 259.997738] [<80323e1c>] (kobject_put) from [<803e350c>] > (put_device+0x1c/0x20) [ 260.005531] r4:da051c00 > [ 260.008096] [<803e34f0>] (put_device) from [<804ff73c>] > (v4l2_release+0x58/0x7c) [ 260.015976] [<804ff6e4>] (v4l2_release) from > [<800f1444>] (__fput+0x9c/0x220) [ 260.023119] r5:da15e190 r4:da3c8dc0 > [ 260.027004] [<800f13a8>] (__fput) from [<800f1624>] (____fput+0x10/0x14) > [ 260.033709] r10:da306200 r9:da30c620 r8:00418004 r7:da306200 r6:80cc2180 > r5:da3ee280 [ 260.042078] r4:da306564 > [ 260.044936] [<800f1614>] (____fput) from [<8003d198>] > (task_work_run+0xa0/0xe4) [ 260.052257] [<8003d0f8>] (task_work_run) from > [<80025cb8>] (do_exit+0x280/0x8d0) [ 260.060365] r7:da30c624 r6:da3c229c > r5:da306574 r4:da3c2240 > [ 260.066144] [<80025a38>] (do_exit) from [<8002722c>] > (do_group_exit+0x44/0xb8) [ 260.073369] r7:da30c624 > [ 260.076398] [<800271e8>] (do_group_exit) from [<80031510>] > (get_signal+0x254/0x6c8) [ 260.084059] r7:da30c624 r6:d81f7ed4 > r5:00000009 r4:d81f6000 > [ 260.090262] [<800312bc>] (get_signal) from [<80012190>] > (do_signal+0x6c/0x3f4) [ 260.097955] r10:00000000 r9:d81f6000 r8:fffffe00 > r7:d81f7ec0 r6:76ca6de6 r5:76ca6de4 [ 260.105910] r4:d81f7fb0 > [ 260.108469] [<80012124>] (do_signal) from [<800126c4>] > (do_work_pending+0xa8/0xe8) [ 260.116728] r10:00000000 r9:d81f6000 > r8:8000f3a4 r7:d81f7fb0 r6:8000f3a4 r5:d81f6000 [ 260.124899] r4:d81f6008 > [ 260.127463] [<8001261c>] (do_work_pending) from [<8000f238>] > (work_pending+0xc/0x20) [ 260.135694] r7:00000036 r6:756065a8 r5:0193d3f8 > r4:76b77b24 > [ 260.141419] ---[ end trace cd2cc911d2f600b0 ]--- > --- > drivers/media/usb/uvc/uvc_driver.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/media/usb/uvc/uvc_driver.c > b/drivers/media/usb/uvc/uvc_driver.c index f8135f4..b58e46a 100644 > --- a/drivers/media/usb/uvc/uvc_driver.c > +++ b/drivers/media/usb/uvc/uvc_driver.c > @@ -1626,15 +1626,10 @@ static void uvc_delete(struct uvc_device *dev) > usb_put_intf(dev->intf); > usb_put_dev(dev->udev); > > - uvc_status_cleanup(dev); > uvc_ctrl_cleanup_device(dev); > > if (dev->vdev.dev) > v4l2_device_unregister(&dev->vdev); > -#ifdef CONFIG_MEDIA_CONTROLLER > - if (media_devnode_is_registered(&dev->mdev.devnode)) > - media_device_unregister(&dev->mdev); > -#endif > > list_for_each_safe(p, n, &dev->chains) { > struct uvc_video_chain *chain; > @@ -1705,6 +1700,11 @@ static void uvc_unregister_video(struct uvc_device > *dev) uvc_debugfs_cleanup_stream(stream); > } > > + uvc_status_cleanup(dev); > +#ifdef CONFIG_MEDIA_CONTROLLER > + if (media_devnode_is_registered(&dev->mdev.devnode)) > + media_device_unregister(&dev->mdev); > +#endif > /* Decrement the stream count and call uvc_delete explicitly if there > * are no stream left. > */ -- Regards, Laurent Pinchart -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html