[ 922.978711][ T12] nci: __nci_request: wait_for_completion_interruptible_timeout failed 0 [ 922.979498][ T7375] [ 922.979557][ T7375] ====================================================== [ 922.979679][ T7375] WARNING: possible circular locking dependency detected [ 922.979823][ T7375] 7.0.0-rc3-virtme #1 Not tainted [ 922.979926][ T7375] ------------------------------------------------------ [ 922.980052][ T7375] nci_dev/7375 is trying to acquire lock: [ 922.980149][ T7375] ff11000010a05948 ((wq_completion)nfc0_nci_rx_wq){+.+.}-{0:0}, at: touch_wq_lockdep_map+0x7e/0x1a0 [ 922.980359][ T7375] [ 922.980359][ T7375] but task is already holding lock: [ 922.980506][ T7375] ff1100000ed81350 (&ndev->req_lock){+.+.}-{4:4}, at: nci_close_device.isra.0+0x57/0x470 [ 922.980681][ T7375] [ 922.980681][ T7375] which lock already depends on the new lock. [ 922.980681][ T7375] [ 922.980883][ T7375] [ 922.980883][ T7375] the existing dependency chain (in reverse order) is: [ 922.981055][ T7375] [ 922.981055][ T7375] -> #2 (&ndev->req_lock){+.+.}-{4:4}: [ 922.981199][ T7375] __lock_acquire+0x577/0xc10 [ 922.981306][ T7375] lock_acquire.part.0+0xbc/0x260 [ 922.981404][ T7375] __mutex_lock+0x1ac/0x1f20 [ 922.981501][ T7375] nci_deactivate_target+0xe3/0x170 [ 922.981601][ T7375] nfc_deactivate_target+0x1aa/0x340 [ 922.981723][ T7375] rawsock_destruct+0x11f/0x190 [ 922.981822][ T7375] __sk_destruct+0x77/0x7f0 [ 922.981921][ T7375] nci_rx_work+0x27e/0x330 [ 922.982016][ T7375] process_one_work+0xd57/0x1390 [ 922.982111][ T7375] worker_thread+0x4d6/0xd40 [ 922.982207][ T7375] kthread+0x30f/0x3f0 [ 922.982307][ T7375] ret_from_fork+0x472/0x6b0 [ 922.982405][ T7375] ret_from_fork_asm+0x11/0x20 [ 922.982502][ T7375] [ 922.982502][ T7375] -> #1 ((work_completion)(&ndev->rx_work)){+.+.}-{0:0}: [ 922.982675][ T7375] __lock_acquire+0x577/0xc10 [ 922.982781][ T7375] lock_acquire.part.0+0xbc/0x260 [ 922.982879][ T7375] process_one_work+0xd28/0x1390 [ 922.982973][ T7375] worker_thread+0x4d6/0xd40 [ 922.983067][ T7375] kthread+0x30f/0x3f0 [ 922.983163][ T7375] ret_from_fork+0x472/0x6b0 [ 922.983263][ T7375] ret_from_fork_asm+0x11/0x20 [ 922.983360][ T7375] [ 922.983360][ T7375] -> #0 ((wq_completion)nfc0_nci_rx_wq){+.+.}-{0:0}: [ 922.983531][ T7375] check_prev_add+0xde/0xd30 [ 922.983626][ T7375] validate_chain+0x68b/0xb70 [ 922.983742][ T7375] __lock_acquire+0x577/0xc10 [ 922.983850][ T7375] lock_acquire.part.0+0xbc/0x260 [ 922.983945][ T7375] touch_wq_lockdep_map+0x97/0x1a0 [ 922.984040][ T7375] __flush_workqueue+0x119/0x12d0 [ 922.984136][ T7375] nci_close_device.isra.0+0x14c/0x470 [ 922.984263][ T7375] nci_dev_down+0x3a/0x50 [ 922.984359][ T7375] nfc_dev_down+0x182/0x2c0 [ 922.984454][ T7375] nfc_genl_dev_down+0x98/0xe0 [ 922.984550][ T7375] genl_family_rcv_msg_doit+0x1e4/0x2c0 [ 922.984669][ T7375] genl_family_rcv_msg+0x35a/0x5b0 [ 922.984773][ T7375] genl_rcv_msg+0xa3/0x130 [ 922.984866][ T7375] netlink_rcv_skb+0x123/0x380 [ 922.984965][ T7375] genl_rcv+0x28/0x40 [ 922.985060][ T7375] netlink_unicast+0x4a3/0x770 [ 922.985166][ T7375] netlink_sendmsg+0x735/0xc60 [ 922.985268][ T7375] __sys_sendto+0x265/0x390 [ 922.985362][ T7375] __x64_sys_sendto+0xe4/0x1f0 [ 922.985454][ T7375] do_syscall_64+0x117/0xfc0 [ 922.985547][ T7375] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 922.985663][ T7375] [ 922.985663][ T7375] other info that might help us debug this: [ 922.985663][ T7375] [ 922.985857][ T7375] Chain exists of: [ 922.985857][ T7375] (wq_completion)nfc0_nci_rx_wq --> (work_completion)(&ndev->rx_work) --> &ndev->req_lock [ 922.985857][ T7375] [ 922.986143][ T7375] Possible unsafe locking scenario: [ 922.986143][ T7375] [ 922.986283][ T7375] CPU0 CPU1 [ 922.986377][ T7375] ---- ---- [ 922.986472][ T7375] lock(&ndev->req_lock); [ 922.986572][ T7375] lock((work_completion)(&ndev->rx_work)); [ 922.986718][ T7375] lock(&ndev->req_lock); [ 922.986842][ T7375] lock((wq_completion)nfc0_nci_rx_wq); [ 922.986938][ T7375] [ 922.986938][ T7375] *** DEADLOCK *** [ 922.986938][ T7375] [ 922.987079][ T7375] 4 locks held by nci_dev/7375: [ 922.987175][ T7375] #0: ffffffff916dfeb0 (cb_lock){++++}-{4:4}, at: genl_rcv+0x19/0x40 [ 922.987330][ T7375] #1: ffffffff916dff68 (genl_mutex){+.+.}-{4:4}, at: genl_rcv_msg+0x101/0x130 [ 922.987496][ T7375] #2: ff1100000d26a100 (&dev->mutex){....}-{4:4}, at: nfc_dev_down+0x2a/0x2c0 [ 922.987660][ T7375] #3: ff1100000ed81350 (&ndev->req_lock){+.+.}-{4:4}, at: nci_close_device.isra.0+0x57/0x470 [ 922.987861][ T7375] [ 922.987861][ T7375] stack backtrace: [ 922.987987][ T7375] CPU: 3 UID: 0 PID: 7375 Comm: nci_dev Not tainted 7.0.0-rc3-virtme #1 PREEMPT(full) [ 922.987990][ T7375] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 922.987992][ T7375] Call Trace: [ 922.987993][ T7375] [ 922.987995][ T7375] dump_stack_lvl+0x6f/0xa0 [ 922.987998][ T7375] print_circular_bug.cold+0x38/0x46 [ 922.988001][ T7375] check_noncircular+0x146/0x170 [ 922.988004][ T7375] check_prev_add+0xde/0xd30 [ 922.988005][ T7375] ? find_held_lock+0x2b/0x80 [ 922.988007][ T7375] validate_chain+0x68b/0xb70 [ 922.988009][ T7375] ? rcu_read_lock_any_held+0x3c/0x90 [ 922.988012][ T7375] __lock_acquire+0x577/0xc10 [ 922.988014][ T7375] lock_acquire.part.0+0xbc/0x260 [ 922.988016][ T7375] ? touch_wq_lockdep_map+0x7e/0x1a0 [ 922.988018][ T7375] ? rcu_is_watching+0x15/0xd0 [ 922.988020][ T7375] ? lock_acquire.part.0+0xbc/0x260 [ 922.988022][ T7375] ? lock_acquire+0x152/0x180 [ 922.988023][ T7375] ? touch_wq_lockdep_map+0x7e/0x1a0 [ 922.988025][ T7375] touch_wq_lockdep_map+0x97/0x1a0 [ 922.988027][ T7375] ? touch_wq_lockdep_map+0x7e/0x1a0 [ 922.988029][ T7375] __flush_workqueue+0x119/0x12d0 [ 922.988031][ T7375] ? __mutex_lock+0x285/0x1f20 [ 922.988032][ T7375] ? lockdep_hardirqs_on+0x84/0x130 [ 922.988035][ T7375] ? __mutex_lock+0x285/0x1f20 [ 922.988036][ T7375] ? nci_close_device.isra.0+0x57/0x470 [ 922.988039][ T7375] ? idle_cull_fn+0x5d0/0x5d0 [ 922.988043][ T7375] nci_close_device.isra.0+0x14c/0x470 [ 922.988045][ T7375] nci_dev_down+0x3a/0x50 [ 922.988047][ T7375] nfc_dev_down+0x182/0x2c0 [ 922.988049][ T7375] nfc_genl_dev_down+0x98/0xe0 [ 922.988050][ T7375] genl_family_rcv_msg_doit+0x1e4/0x2c0 [ 922.988052][ T7375] ? genl_family_rcv_msg_attrs_parse.isra.0+0x310/0x310 [ 922.988054][ T7375] ? lock_acquire+0x152/0x180 [ 922.988057][ T7375] ? rcu_is_watching+0x15/0xd0 [ 922.988059][ T7375] ? cap_capable+0x1ed/0x3f0 [ 922.988062][ T7375] genl_family_rcv_msg+0x35a/0x5b0 [ 922.988064][ T7375] ? genl_family_rcv_msg_dumpit+0x320/0x320 [ 922.988066][ T7375] ? nfc_genl_start_poll+0x410/0x410 [ 922.988068][ T7375] ? __lock_acquire+0x577/0xc10 [ 922.988070][ T7375] genl_rcv_msg+0xa3/0x130 [ 922.988072][ T7375] netlink_rcv_skb+0x123/0x380 [ 922.988074][ T7375] ? genl_family_rcv_msg+0x5b0/0x5b0 [ 922.988076][ T7375] ? netlink_ack+0xcc0/0xcc0 [ 922.988079][ T7375] ? netlink_deliver_tap+0xc5/0x330 [ 922.988080][ T7375] ? netlink_deliver_tap+0x13f/0x330 [ 922.988082][ T7375] genl_rcv+0x28/0x40 [ 922.988084][ T7375] netlink_unicast+0x4a3/0x770 [ 922.988086][ T7375] ? netlink_attachskb+0x810/0x810 [ 922.988087][ T7375] ? __alloc_skb+0x4c7/0x5f0 [ 922.988090][ T7375] ? napi_skb_cache_get+0x7a0/0x7a0 [ 922.988092][ T7375] ? __lock_acquire+0x577/0xc10 [ 922.988094][ T7375] netlink_sendmsg+0x735/0xc60 [ 922.988096][ T7375] ? netlink_unicast+0x770/0x770 [ 922.988098][ T7375] ? __might_fault+0x97/0x140 [ 922.988101][ T7375] ? __might_fault+0x97/0x140 [ 922.988103][ T7375] __sys_sendto+0x265/0x390 [ 922.988106][ T7375] ? __ia32_sys_getpeername+0xd0/0xd0 [ 922.988108][ T7375] ? __lock_release.isra.0+0x59/0x170 [ 922.988110][ T7375] ? __rwlock_init+0x150/0x150 [ 922.988113][ T7375] ? set_compat_user_sigmask+0x200/0x200 [ 922.988115][ T7375] ? xfd_validate_state+0x2a/0x140 [ 922.988118][ T7375] __x64_sys_sendto+0xe4/0x1f0 [ 922.988120][ T7375] ? trace_irq_enable.constprop.0+0x13c/0x190 [ 922.988123][ T7375] ? lockdep_hardirqs_on+0x84/0x130 [ 922.988125][ T7375] ? do_syscall_64+0x87/0xfc0 [ 922.988126][ T7375] do_syscall_64+0x117/0xfc0 [ 922.988127][ T7375] ? exc_page_fault+0xaf/0xd0 [ 922.988129][ T7375] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 922.988131][ T7375] RIP: 0033:0x7f1f9f0a29a2 [ 922.988134][ T7375] 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 [ 922.988136][ T7375] RSP: 002b:00007fff1ae420b8 EFLAGS: 00000246 ORIG_RAX: 000000000000002c [ 922.988138][ T7375] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f1f9f0a29a2 [ 922.988140][ T7375] RDX: 000000000000001c RSI: 00007fff1ae42150 RDI: 0000000000000006 [ 922.988141][ T7375] RBP: 00007fff1ae420e0 R08: 00007fff1ae4256c R09: 000000000000000c [ 922.988141][ T7375] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fff1ae42d68 [ 922.988142][ T7375] R13: 0000000000000001 R14: 00007f1f9f261000 R15: 0000000000409e00 [ 922.988145][ T7375] [ 922.996277][ T7375] nci: __nci_request: wait_for_completion_interruptible_timeout failed -512