Re: linux-4.7.0: possible irq lock inversion dependency detected

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

 



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



[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux