[ 803.686408][ T67] nci: __nci_request: wait_for_completion_interruptible_timeout failed 0 [ 803.687191][ T3942] [ 803.687271][ T3942] ====================================================== [ 803.687410][ T3942] WARNING: possible circular locking dependency detected [ 803.687531][ T3942] 7.0.0-rc2-virtme #1 Not tainted [ 803.687636][ T3942] ------------------------------------------------------ [ 803.687767][ T3942] nci_dev/3942 is trying to acquire lock: [ 803.687866][ T3942] ff1100000fe37148 ((wq_completion)nfc0_nci_rx_wq){+.+.}-{0:0}, at: touch_wq_lockdep_map+0x7e/0x1a0 [ 803.688070][ T3942] [ 803.688070][ T3942] but task is already holding lock: [ 803.688233][ T3942] ff11000012df4350 (&ndev->req_lock){+.+.}-{4:4}, at: nci_close_device.isra.0+0x57/0x470 [ 803.688437][ T3942] [ 803.688437][ T3942] which lock already depends on the new lock. [ 803.688437][ T3942] [ 803.688625][ T3942] [ 803.688625][ T3942] the existing dependency chain (in reverse order) is: [ 803.688811][ T3942] [ 803.688811][ T3942] -> #2 (&ndev->req_lock){+.+.}-{4:4}: [ 803.688957][ T3942] __lock_acquire+0x577/0xc10 [ 803.689057][ T3942] lock_acquire.part.0+0xbc/0x260 [ 803.689155][ T3942] __mutex_lock+0x1ac/0x1f20 [ 803.689252][ T3942] nci_deactivate_target+0xe3/0x170 [ 803.689347][ T3942] nfc_deactivate_target+0x1aa/0x340 [ 803.689471][ T3942] rawsock_destruct+0x11f/0x190 [ 803.689565][ T3942] __sk_destruct+0x77/0x7f0 [ 803.689663][ T3942] nci_rx_work+0x27e/0x330 [ 803.689760][ T3942] process_one_work+0xd57/0x1390 [ 803.689856][ T3942] worker_thread+0x4d6/0xd40 [ 803.689951][ T3942] kthread+0x30f/0x3f0 [ 803.690051][ T3942] ret_from_fork+0x472/0x6b0 [ 803.690161][ T3942] ret_from_fork_asm+0x11/0x20 [ 803.690258][ T3942] [ 803.690258][ T3942] -> #1 ((work_completion)(&ndev->rx_work)){+.+.}-{0:0}: [ 803.690429][ T3942] __lock_acquire+0x577/0xc10 [ 803.690526][ T3942] lock_acquire.part.0+0xbc/0x260 [ 803.690622][ T3942] process_one_work+0xd28/0x1390 [ 803.690718][ T3942] worker_thread+0x4d6/0xd40 [ 803.690818][ T3942] kthread+0x30f/0x3f0 [ 803.690915][ T3942] ret_from_fork+0x472/0x6b0 [ 803.691013][ T3942] ret_from_fork_asm+0x11/0x20 [ 803.691116][ T3942] [ 803.691116][ T3942] -> #0 ((wq_completion)nfc0_nci_rx_wq){+.+.}-{0:0}: [ 803.691283][ T3942] check_prev_add+0xde/0xd30 [ 803.691381][ T3942] validate_chain+0x68b/0xb70 [ 803.691481][ T3942] __lock_acquire+0x577/0xc10 [ 803.691578][ T3942] lock_acquire.part.0+0xbc/0x260 [ 803.691677][ T3942] touch_wq_lockdep_map+0x97/0x1a0 [ 803.691772][ T3942] __flush_workqueue+0x119/0x12d0 [ 803.691869][ T3942] nci_close_device.isra.0+0x14c/0x470 [ 803.691987][ T3942] nci_dev_down+0x3a/0x50 [ 803.692082][ T3942] nfc_dev_down+0x182/0x2c0 [ 803.692187][ T3942] nfc_genl_dev_down+0x98/0xe0 [ 803.692291][ T3942] genl_family_rcv_msg_doit+0x1e4/0x2c0 [ 803.692414][ T3942] genl_family_rcv_msg+0x35a/0x5b0 [ 803.692510][ T3942] genl_rcv_msg+0xa3/0x130 [ 803.692608][ T3942] netlink_rcv_skb+0x123/0x380 [ 803.692707][ T3942] genl_rcv+0x28/0x40 [ 803.692803][ T3942] netlink_unicast+0x4a3/0x770 [ 803.692902][ T3942] netlink_sendmsg+0x735/0xc60 [ 803.692998][ T3942] __sys_sendto+0x265/0x390 [ 803.693098][ T3942] __x64_sys_sendto+0xe4/0x1f0 [ 803.693194][ T3942] do_syscall_64+0x117/0xfc0 [ 803.693292][ T3942] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 803.693413][ T3942] [ 803.693413][ T3942] other info that might help us debug this: [ 803.693413][ T3942] [ 803.693606][ T3942] Chain exists of: [ 803.693606][ T3942] (wq_completion)nfc0_nci_rx_wq --> (work_completion)(&ndev->rx_work) --> &ndev->req_lock [ 803.693606][ T3942] [ 803.693893][ T3942] Possible unsafe locking scenario: [ 803.693893][ T3942] [ 803.694040][ T3942] CPU0 CPU1 [ 803.694142][ T3942] ---- ---- [ 803.694246][ T3942] lock(&ndev->req_lock); [ 803.694346][ T3942] lock((work_completion)(&ndev->rx_work)); [ 803.694493][ T3942] lock(&ndev->req_lock); [ 803.694619][ T3942] lock((wq_completion)nfc0_nci_rx_wq); [ 803.694721][ T3942] [ 803.694721][ T3942] *** DEADLOCK *** [ 803.694721][ T3942] [ 803.694871][ T3942] 4 locks held by nci_dev/3942: [ 803.694970][ T3942] #0: ffffffff914dfef0 (cb_lock){++++}-{4:4}, at: genl_rcv+0x19/0x40 [ 803.695130][ T3942] #1: ffffffff914dffa8 (genl_mutex){+.+.}-{4:4}, at: genl_rcv_msg+0x101/0x130 [ 803.695305][ T3942] #2: ff110000122ca100 (&dev->mutex){....}-{4:4}, at: nfc_dev_down+0x2a/0x2c0 [ 803.695483][ T3942] #3: ff11000012df4350 (&ndev->req_lock){+.+.}-{4:4}, at: nci_close_device.isra.0+0x57/0x470 [ 803.695681][ T3942] [ 803.695681][ T3942] stack backtrace: [ 803.695807][ T3942] CPU: 3 UID: 0 PID: 3942 Comm: nci_dev Not tainted 7.0.0-rc2-virtme #1 PREEMPT(full) [ 803.695811][ T3942] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 803.695813][ T3942] Call Trace: [ 803.695814][ T3942] [ 803.695816][ T3942] dump_stack_lvl+0x6f/0xa0 [ 803.695820][ T3942] print_circular_bug.cold+0x38/0x46 [ 803.695823][ T3942] check_noncircular+0x146/0x170 [ 803.695826][ T3942] check_prev_add+0xde/0xd30 [ 803.695828][ T3942] ? find_held_lock+0x2b/0x80 [ 803.695830][ T3942] validate_chain+0x68b/0xb70 [ 803.695832][ T3942] ? rcu_read_lock_any_held+0x3c/0x90 [ 803.695835][ T3942] __lock_acquire+0x577/0xc10 [ 803.695837][ T3942] lock_acquire.part.0+0xbc/0x260 [ 803.695839][ T3942] ? touch_wq_lockdep_map+0x7e/0x1a0 [ 803.695841][ T3942] ? rcu_is_watching+0x15/0xd0 [ 803.695843][ T3942] ? lock_acquire.part.0+0xbc/0x260 [ 803.695845][ T3942] ? lock_acquire+0x152/0x180 [ 803.695847][ T3942] ? touch_wq_lockdep_map+0x7e/0x1a0 [ 803.695849][ T3942] touch_wq_lockdep_map+0x97/0x1a0 [ 803.695851][ T3942] ? touch_wq_lockdep_map+0x7e/0x1a0 [ 803.695853][ T3942] __flush_workqueue+0x119/0x12d0 [ 803.695855][ T3942] ? __mutex_lock+0x285/0x1f20 [ 803.695857][ T3942] ? lockdep_hardirqs_on+0x84/0x130 [ 803.695860][ T3942] ? __mutex_lock+0x285/0x1f20 [ 803.695861][ T3942] ? nci_close_device.isra.0+0x57/0x470 [ 803.695864][ T3942] ? idle_cull_fn+0x5d0/0x5d0 [ 803.695868][ T3942] nci_close_device.isra.0+0x14c/0x470 [ 803.695870][ T3942] nci_dev_down+0x3a/0x50 [ 803.695872][ T3942] nfc_dev_down+0x182/0x2c0 [ 803.695874][ T3942] nfc_genl_dev_down+0x98/0xe0 [ 803.695876][ T3942] genl_family_rcv_msg_doit+0x1e4/0x2c0 [ 803.695878][ T3942] ? genl_family_rcv_msg_attrs_parse.isra.0+0x2c0/0x2c0 [ 803.695880][ T3942] ? lock_acquire+0x152/0x180 [ 803.695883][ T3942] ? rcu_is_watching+0x15/0xd0 [ 803.695885][ T3942] ? cap_capable+0x1ed/0x3f0 [ 803.695889][ T3942] genl_family_rcv_msg+0x35a/0x5b0 [ 803.695891][ T3942] ? genl_family_rcv_msg_dumpit+0x320/0x320 [ 803.695893][ T3942] ? nfc_genl_start_poll+0x410/0x410 [ 803.695895][ T3942] ? __lock_acquire+0x577/0xc10 [ 803.695898][ T3942] genl_rcv_msg+0xa3/0x130 [ 803.695900][ T3942] netlink_rcv_skb+0x123/0x380 [ 803.695901][ T3942] ? genl_family_rcv_msg+0x5b0/0x5b0 [ 803.695903][ T3942] ? netlink_ack+0xcc0/0xcc0 [ 803.695906][ T3942] ? netlink_deliver_tap+0xc5/0x330 [ 803.695908][ T3942] ? netlink_deliver_tap+0x13f/0x330 [ 803.695910][ T3942] genl_rcv+0x28/0x40 [ 803.695912][ T3942] netlink_unicast+0x4a3/0x770 [ 803.695914][ T3942] ? netlink_attachskb+0x810/0x810 [ 803.695916][ T3942] ? __alloc_skb+0x4c7/0x5f0 [ 803.695919][ T3942] ? napi_skb_cache_get+0x7a0/0x7a0 [ 803.695922][ T3942] ? __lock_acquire+0x577/0xc10 [ 803.695925][ T3942] netlink_sendmsg+0x735/0xc60 [ 803.695928][ T3942] ? netlink_unicast+0x770/0x770 [ 803.695930][ T3942] ? __might_fault+0x97/0x140 [ 803.695934][ T3942] ? __might_fault+0x97/0x140 [ 803.695936][ T3942] __sys_sendto+0x265/0x390 [ 803.695938][ T3942] ? __ia32_sys_getpeername+0xd0/0xd0 [ 803.695941][ T3942] ? __lock_release.isra.0+0x59/0x170 [ 803.695943][ T3942] ? __rwlock_init+0x150/0x150 [ 803.695946][ T3942] ? set_compat_user_sigmask+0x200/0x200 [ 803.695949][ T3942] __x64_sys_sendto+0xe4/0x1f0 [ 803.695951][ T3942] ? trace_irq_enable.constprop.0+0x13c/0x190 [ 803.695954][ T3942] ? lockdep_hardirqs_on+0x84/0x130 [ 803.695956][ T3942] ? do_syscall_64+0x87/0xfc0 [ 803.695958][ T3942] do_syscall_64+0x117/0xfc0 [ 803.695959][ T3942] ? exc_page_fault+0xaf/0xd0 [ 803.695961][ T3942] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 803.695963][ T3942] RIP: 0033:0x7fc2ceab19a2 [ 803.695966][ T3942] Code: 08 0f 85 01 42 ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 66 2e 0f 1f 84 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 66 [ 803.695968][ T3942] RSP: 002b:00007ffc3c520098 EFLAGS: 00000246 ORIG_RAX: 000000000000002c [ 803.695971][ T3942] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fc2ceab19a2 [ 803.695972][ T3942] RDX: 000000000000001c RSI: 00007ffc3c520130 RDI: 0000000000000006 [ 803.695973][ T3942] RBP: 00007ffc3c5200c0 R08: 00007ffc3c52054c R09: 000000000000000c [ 803.695974][ T3942] R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffc3c520d48 [ 803.695975][ T3942] R13: 0000000000000001 R14: 00007fc2cec70000 R15: 0000000000409e00 [ 803.695977][ T3942] [ 803.704008][ T3942] nci: __nci_request: wait_for_completion_interruptible_timeout failed -512