So I captured this:
|WARNING: CPU: 0 PID: 2078 at /home/bigeasy/work/new/TI/linux/lib/debugobjects.c:260 debug_print_object+0x94/0xc4()
|ODEBUG: free active (active state 0) object type: work_struct hint: musb_irq_work+0x0/0x38 [musb_hdrc]
|CPU: 0 PID: 2078 Comm: rmmod Not tainted 3.12.0-rc4+ #338
|[<
c0014d38>] (unwind_backtrace+0x0/0xf4) from [<
c001249c>] (show_stack+0x14/0x1c)
|[<
c001249c>] (show_stack+0x14/0x1c) from [<
c0037720>] (warn_slowpath_common+0x64/0x84)
|[<
c0037720>] (warn_slowpath_common+0x64/0x84) from [<
c00377d4>] (warn_slowpath_fmt+0x30/0x40)
|[<
c00377d4>] (warn_slowpath_fmt+0x30/0x40) from [<
c022ae90>] (debug_print_object+0x94/0xc4)
|[<
c022ae90>] (debug_print_object+0x94/0xc4) from [<
c022b7e0>] (debug_check_no_obj_freed+0x1c0/0x228)
|[<
c022b7e0>] (debug_check_no_obj_freed+0x1c0/0x228) from [<
c00f1f38>] (kfree+0xf8/0x228)
|[<
c00f1f38>] (kfree+0xf8/0x228) from [<
c02921c4>] (release_nodes+0x1a8/0x248)
|[<
c02921c4>] (release_nodes+0x1a8/0x248) from [<
c028f70c>] (__device_release_driver+0x98/0xf0)
|[<
c028f70c>] (__device_release_driver+0x98/0xf0) from [<
c028f840>] (device_release_driver+0x24/0x34)
|[<
c028f840>] (device_release_driver+0x24/0x34) from [<
c028ebe8>] (bus_remove_device+0x148/0x15c)
|[<
c028ebe8>] (bus_remove_device+0x148/0x15c) from [<
c028d120>] (device_del+0x104/0x1c0)
|[<
c028d120>] (device_del+0x104/0x1c0) from [<
c02911e4>] (platform_device_del+0x18/0xac)
|[<
c02911e4>] (platform_device_del+0x18/0xac) from [<
c029179c>] (platform_device_unregister+0xc/0x18)
|[<
c029179c>] (platform_device_unregister+0xc/0x18) from [<
bf1902fc>] (dsps_remove+0x20/0x4c [musb_dsps])
|[<
bf1902fc>] (dsps_remove+0x20/0x4c [musb_dsps]) from [<
c0290d7c>] (platform_drv_remove+0x1c/0x24)
|[<
c0290d7c>] (platform_drv_remove+0x1c/0x24) from [<
c028f704>] (__device_release_driver+0x90/0xf0)
|[<
c028f704>] (__device_release_driver+0x90/0xf0) from [<
c028f818>] (driver_detach+0xb4/0xb8)
|[<
c028f818>] (driver_detach+0xb4/0xb8) from [<
c028e6e8>] (bus_remove_driver+0x98/0xec)
|[<
c028e6e8>] (bus_remove_driver+0x98/0xec) from [<
c008fc70>] (SyS_delete_module+0x1e0/0x24c)
|[<
c008fc70>] (SyS_delete_module+0x1e0/0x24c) from [<
c000e680>] (ret_fast_syscall+0x0/0x48)
|---[ end trace
d79045419a3e51ec ]---
The workqueue is only scheduled from the ep0 and never canceled in case
the musb is removed before the work has a chance to run.
Cc: stable@vger.kernel.org
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>