With '[PATCH v2] musb: omap2430: do not assume balanced enable()/disable()' it looks a bit "better": ================================= [ INFO: inconsistent lock state ] 4.7.0 #2 Not tainted --------------------------------- inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. swapper/0 [HC1[1]:SC0[0]:HE0:SE1] takes: (&(&musb->lock)->rlock){?.+.+.}, at: [<c041ab48>] omap2430_musb_interrupt+0x10/0xa0 {HARDIRQ-ON-W} state was registered at: [<c05b64a4>] _raw_spin_unlock_irq+0x24/0x2c [<c05b2ddc>] wait_for_common+0x108/0x150 [<c04239a8>] omap_i2c_xfer+0x38c/0x4d0 [<c041fe4c>] __i2c_transfer+0x1cc/0x21c [<c041ff18>] i2c_transfer+0x7c/0xd4 [<c0398fe0>] regmap_i2c_read+0x48/0x64 [<c0394bb4>] _regmap_raw_read+0xa8/0xe8 [<c0394d38>] regmap_raw_read+0xf4/0x174 [<c0394e8c>] regmap_bulk_read+0xd4/0x264 [<c039b9d8>] twl_i2c_read+0x48/0x80 [<c033dfb8>] twl4030_i2c_access+0x20/0x1c8 [<c033e5dc>] twl4030_phy_power_on+0x4c/0x1a8 [<c033b3c4>] phy_power_on+0x7c/0xe0 [<c041a8e8>] omap2430_musb_enable+0xf8/0x110 [<c0413bd4>] musb_start+0x104/0x128 [<c04152c4>] musb_hub_control+0x234/0x434 [<c03f09a0>] usb_hcd_submit_urb+0x5cc/0x844 [<c03f225c>] usb_start_wait_urb+0x44/0x12c [<c03f23e0>] usb_control_msg+0x9c/0xc4 [<c03e6f48>] set_port_feature+0x40/0x48 [<c03ea23c>] hub_power_on+0xa4/0xf8 [<c03ea3ec>] hub_activate+0x15c/0x644 [<c03ed8c4>] hub_probe+0x49c/0xcf0 [<c03f5f60>] usb_probe_interface+0x1ac/0x258 [<c0385a0c>] driver_probe_device+0x1cc/0x40c [<c0383de8>] bus_for_each_drv+0x84/0x94 [<c0385748>] __device_attach+0x8c/0x12c [<c0384c04>] bus_probe_device+0x28/0x84 [<c03830f8>] device_add+0x414/0x53c [<c03f43ec>] usb_set_configuration+0x65c/0x6fc [<c03fd8a4>] generic_probe+0x3c/0x74 [<c0385a0c>] driver_probe_device+0x1cc/0x40c [<c0383de8>] bus_for_each_drv+0x84/0x94 [<c0385748>] __device_attach+0x8c/0x12c [<c0384c04>] bus_probe_device+0x28/0x84 [<c03830f8>] device_add+0x414/0x53c [<c03eb300>] usb_new_device+0x2c0/0x408 [<c03ef838>] usb_add_hcd+0x5ec/0x8dc [<c0419248>] musb_host_setup+0x90/0xac [<c04136c4>] musb_probe+0x610/0x844 [<c0387250>] platform_drv_probe+0x50/0xa0 [<c0385a0c>] driver_probe_device+0x1cc/0x40c [<c0383de8>] bus_for_each_drv+0x84/0x94 [<c0385748>] __device_attach+0x8c/0x12c [<c0384c04>] bus_probe_device+0x28/0x84 [<c0385170>] deferred_probe_work_func+0x74/0xa8 [<c013e324>] process_one_work+0x224/0x3c8 [<c013ea64>] worker_thread+0x2ac/0x3d4 [<c0142cf4>] kthread+0xd0/0xe4 [<c0107570>] ret_from_fork+0x14/0x24 irq event stamp: 3478 hardirqs last enabled at (3475): [<c0432020>] cpuidle_enter_state+0x174/0x250 hardirqs last disabled at (3476): [<c010bb68>] __irq_svc+0x48/0x78 softirqs last enabled at (3478): [<c012b8a0>] irq_enter+0x48/0x7c softirqs last disabled at (3477): [<c012b88c>] irq_enter+0x34/0x7c other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(&(&musb->lock)->rlock); <Interrupt> lock(&(&musb->lock)->rlock); *** DEADLOCK *** no locks held by swapper/0. stack backtrace: CPU: 0 PID: 0 Comm: swapper Not tainted 4.7.0 #2 Hardware name: Generic OMAP36xx (Flattened Device Tree) [<c010d2f4>] (unwind_backtrace) from [<c010b140>] (show_stack+0x10/0x14) [<c010b140>] (show_stack) from [<c0196410>] (print_usage_bug.part.11+0x21c/0x284) [<c0196410>] (print_usage_bug.part.11) from [<c01526b4>] (mark_lock+0x3ec/0x618) [<c01526b4>] (mark_lock) from [<c01530b8>] (__lock_acquire+0x340/0x17cc) [<c01530b8>] (__lock_acquire) from [<c01548e0>] (lock_acquire+0x70/0x90) [<c01548e0>] (lock_acquire) from [<c05b6334>] (_raw_spin_lock_irqsave+0x38/0x4c) [<c05b6334>] (_raw_spin_lock_irqsave) from [<c041ab48>] (omap2430_musb_interrupt+0x10/0xa0) [<c041ab48>] (omap2430_musb_interrupt) from [<c015b740>] (handle_irq_event_percpu+0x34/0x134) [<c015b740>] (handle_irq_event_percpu) from [<c015b878>] (handle_irq_event+0x38/0x5c) [<c015b878>] (handle_irq_event) from [<c015e1b4>] (handle_level_irq+0xcc/0x108) [<c015e1b4>] (handle_level_irq) from [<c015af80>] (generic_handle_irq+0x18/0x28) [<c015af80>] (generic_handle_irq) from [<c015b228>] (__handle_domain_irq+0x80/0xa0) [<c015b228>] (__handle_domain_irq) from [<c010bb78>] (__irq_svc+0x58/0x78) [<c010bb78>] (__irq_svc) from [<c0432028>] (cpuidle_enter_state+0x17c/0x250) [<c0432028>] (cpuidle_enter_state) from [<c014f11c>] (cpu_startup_entry+0xe0/0x148) [<c014f11c>] (cpu_startup_entry) from [<c0900be4>] (start_kernel+0x310/0x37c) [<c0900be4>] (start_kernel) from [<80008078>] (0x80008078) -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html