[ 805.221071][ T3947] nci: __nci_request: wait_for_completion_interruptible_timeout failed 0 [ 805.221896][ T3941] [ 805.221971][ T3941] ====================================================== [ 805.222099][ T3941] WARNING: possible circular locking dependency detected [ 805.222225][ T3941] 7.0.0-rc2-virtme #1 Not tainted [ 805.222324][ T3941] ------------------------------------------------------ [ 805.222442][ T3941] nci_dev/3941 is trying to acquire lock: [ 805.222567][ T3941] ff1100000ff13548 ((wq_completion)nfc0_nci_rx_wq){+.+.}-{0:0}, at: touch_wq_lockdep_map+0x7e/0x1a0 [ 805.222763][ T3941] [ 805.222763][ T3941] but task is already holding lock: [ 805.222905][ T3941] ff11000010674350 (&ndev->req_lock){+.+.}-{4:4}, at: nci_close_device.isra.0+0x57/0x470 [ 805.223077][ T3941] [ 805.223077][ T3941] which lock already depends on the new lock. [ 805.223077][ T3941] [ 805.223267][ T3941] [ 805.223267][ T3941] the existing dependency chain (in reverse order) is: [ 805.223430][ T3941] [ 805.223430][ T3941] -> #2 (&ndev->req_lock){+.+.}-{4:4}: [ 805.223581][ T3941] __lock_acquire+0x577/0xc10 [ 805.223680][ T3941] lock_acquire.part.0+0xbc/0x260 [ 805.223781][ T3941] __mutex_lock+0x1ac/0x1f20 [ 805.223878][ T3941] nci_deactivate_target+0xe3/0x170 [ 805.223980][ T3941] nfc_deactivate_target+0x1aa/0x340 [ 805.224095][ T3941] rawsock_destruct+0x11f/0x190 [ 805.224190][ T3941] __sk_destruct+0x77/0x7f0 [ 805.224283][ T3941] nci_rx_work+0x27e/0x330 [ 805.224374][ T3941] process_one_work+0xd57/0x1390 [ 805.224468][ T3941] worker_thread+0x4d6/0xd40 [ 805.224567][ T3941] kthread+0x30f/0x3f0 [ 805.224670][ T3941] ret_from_fork+0x472/0x6b0 [ 805.224763][ T3941] ret_from_fork_asm+0x11/0x20 [ 805.224859][ T3941] [ 805.224859][ T3941] -> #1 ((work_completion)(&ndev->rx_work)){+.+.}-{0:0}: [ 805.225023][ T3941] __lock_acquire+0x577/0xc10 [ 805.225116][ T3941] lock_acquire.part.0+0xbc/0x260 [ 805.225210][ T3941] process_one_work+0xd28/0x1390 [ 805.225305][ T3941] worker_thread+0x4d6/0xd40 [ 805.225396][ T3941] kthread+0x30f/0x3f0 [ 805.225490][ T3941] ret_from_fork+0x472/0x6b0 [ 805.225582][ T3941] ret_from_fork_asm+0x11/0x20 [ 805.225674][ T3941] [ 805.225674][ T3941] -> #0 ((wq_completion)nfc0_nci_rx_wq){+.+.}-{0:0}: [ 805.225834][ T3941] check_prev_add+0xde/0xd30 [ 805.225931][ T3941] validate_chain+0x68b/0xb70 [ 805.226021][ T3941] __lock_acquire+0x577/0xc10 [ 805.226110][ T3941] lock_acquire.part.0+0xbc/0x260 [ 805.226202][ T3941] touch_wq_lockdep_map+0x97/0x1a0 [ 805.226294][ T3941] __flush_workqueue+0x119/0x12d0 [ 805.226386][ T3941] nci_close_device.isra.0+0x14c/0x470 [ 805.226508][ T3941] nci_dev_down+0x3a/0x50 [ 805.226598][ T3941] nfc_dev_down+0x182/0x2c0 [ 805.226689][ T3941] nfc_genl_dev_down+0x98/0xe0 [ 805.226781][ T3941] genl_family_rcv_msg_doit+0x1e4/0x2c0 [ 805.226898][ T3941] genl_family_rcv_msg+0x35a/0x5b0 [ 805.226989][ T3941] genl_rcv_msg+0xa3/0x130 [ 805.227080][ T3941] netlink_rcv_skb+0x123/0x380 [ 805.227177][ T3941] genl_rcv+0x28/0x40 [ 805.227268][ T3941] netlink_unicast+0x4a3/0x770 [ 805.227361][ T3941] netlink_sendmsg+0x735/0xc60 [ 805.227453][ T3941] __sys_sendto+0x265/0x390 [ 805.227553][ T3941] __x64_sys_sendto+0xe4/0x1f0 [ 805.227649][ T3941] do_syscall_64+0x117/0xfc0 [ 805.227743][ T3941] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 805.227859][ T3941] [ 805.227859][ T3941] other info that might help us debug this: [ 805.227859][ T3941] [ 805.228044][ T3941] Chain exists of: [ 805.228044][ T3941] (wq_completion)nfc0_nci_rx_wq --> (work_completion)(&ndev->rx_work) --> &ndev->req_lock [ 805.228044][ T3941] [ 805.228324][ T3941] Possible unsafe locking scenario: [ 805.228324][ T3941] [ 805.228468][ T3941] CPU0 CPU1 [ 805.228566][ T3941] ---- ---- [ 805.228659][ T3941] lock(&ndev->req_lock); [ 805.228758][ T3941] lock((work_completion)(&ndev->rx_work)); [ 805.228899][ T3941] lock(&ndev->req_lock); [ 805.229016][ T3941] lock((wq_completion)nfc0_nci_rx_wq); [ 805.229114][ T3941] [ 805.229114][ T3941] *** DEADLOCK *** [ 805.229114][ T3941] [ 805.229252][ T3941] 4 locks held by nci_dev/3941: [ 805.229349][ T3941] #0: ffffffff9badfdb0 (cb_lock){++++}-{4:4}, at: genl_rcv+0x19/0x40 [ 805.229493][ T3941] #1: ffffffff9badfe68 (genl_mutex){+.+.}-{4:4}, at: genl_rcv_msg+0x101/0x130 [ 805.229657][ T3941] #2: ff11000001d5a100 (&dev->mutex){....}-{4:4}, at: nfc_dev_down+0x2a/0x2c0 [ 805.229828][ T3941] #3: ff11000010674350 (&ndev->req_lock){+.+.}-{4:4}, at: nci_close_device.isra.0+0x57/0x470 [ 805.230013][ T3941] [ 805.230013][ T3941] stack backtrace: [ 805.230133][ T3941] CPU: 2 UID: 0 PID: 3941 Comm: nci_dev Not tainted 7.0.0-rc2-virtme #1 PREEMPT(full) [ 805.230137][ T3941] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [ 805.230139][ T3941] Call Trace: [ 805.230140][ T3941] [ 805.230141][ T3941] dump_stack_lvl+0x6f/0xa0 [ 805.230144][ T3941] print_circular_bug.cold+0x38/0x46 [ 805.230147][ T3941] check_noncircular+0x146/0x170 [ 805.230150][ T3941] check_prev_add+0xde/0xd30 [ 805.230151][ T3941] ? find_held_lock+0x2b/0x80 [ 805.230153][ T3941] validate_chain+0x68b/0xb70 [ 805.230155][ T3941] ? rcu_read_lock_any_held+0x3c/0x90 [ 805.230158][ T3941] __lock_acquire+0x577/0xc10 [ 805.230160][ T3941] lock_acquire.part.0+0xbc/0x260 [ 805.230162][ T3941] ? touch_wq_lockdep_map+0x7e/0x1a0 [ 805.230164][ T3941] ? rcu_is_watching+0x15/0xd0 [ 805.230166][ T3941] ? lock_acquire.part.0+0xbc/0x260 [ 805.230167][ T3941] ? lock_acquire+0x152/0x180 [ 805.230169][ T3941] ? touch_wq_lockdep_map+0x7e/0x1a0 [ 805.230170][ T3941] touch_wq_lockdep_map+0x97/0x1a0 [ 805.230172][ T3941] ? touch_wq_lockdep_map+0x7e/0x1a0 [ 805.230174][ T3941] __flush_workqueue+0x119/0x12d0 [ 805.230176][ T3941] ? __mutex_lock+0x285/0x1f20 [ 805.230177][ T3941] ? lockdep_hardirqs_on+0x84/0x130 [ 805.230180][ T3941] ? __mutex_lock+0x285/0x1f20 [ 805.230181][ T3941] ? nci_close_device.isra.0+0x57/0x470 [ 805.230184][ T3941] ? idle_cull_fn+0x5d0/0x5d0 [ 805.230188][ T3941] nci_close_device.isra.0+0x14c/0x470 [ 805.230190][ T3941] nci_dev_down+0x3a/0x50 [ 805.230192][ T3941] nfc_dev_down+0x182/0x2c0 [ 805.230193][ T3941] nfc_genl_dev_down+0x98/0xe0 [ 805.230195][ T3941] genl_family_rcv_msg_doit+0x1e4/0x2c0 [ 805.230197][ T3941] ? genl_family_rcv_msg_attrs_parse.isra.0+0x310/0x310 [ 805.230198][ T3941] ? lock_acquire+0x152/0x180 [ 805.230201][ T3941] ? rcu_is_watching+0x15/0xd0 [ 805.230203][ T3941] ? cap_capable+0x1ed/0x3f0 [ 805.230206][ T3941] genl_family_rcv_msg+0x35a/0x5b0 [ 805.230209][ T3941] ? genl_family_rcv_msg_dumpit+0x320/0x320 [ 805.230210][ T3941] ? nfc_genl_start_poll+0x410/0x410 [ 805.230212][ T3941] ? __lock_acquire+0x577/0xc10 [ 805.230214][ T3941] genl_rcv_msg+0xa3/0x130 [ 805.230216][ T3941] netlink_rcv_skb+0x123/0x380 [ 805.230217][ T3941] ? genl_family_rcv_msg+0x5b0/0x5b0 [ 805.230219][ T3941] ? netlink_ack+0xcc0/0xcc0 [ 805.230222][ T3941] ? netlink_deliver_tap+0xc5/0x330 [ 805.230224][ T3941] ? netlink_deliver_tap+0x13f/0x330 [ 805.230225][ T3941] genl_rcv+0x28/0x40 [ 805.230227][ T3941] netlink_unicast+0x4a3/0x770 [ 805.230229][ T3941] ? netlink_attachskb+0x810/0x810 [ 805.230230][ T3941] ? __alloc_skb+0x4c7/0x5f0 [ 805.230233][ T3941] ? napi_skb_cache_get+0x7a0/0x7a0 [ 805.230235][ T3941] ? __lock_acquire+0x577/0xc10 [ 805.230237][ T3941] netlink_sendmsg+0x735/0xc60 [ 805.230239][ T3941] ? netlink_unicast+0x770/0x770 [ 805.230240][ T3941] ? __might_fault+0x97/0x140 [ 805.230244][ T3941] ? __might_fault+0x97/0x140 [ 805.230246][ T3941] __sys_sendto+0x265/0x390 [ 805.230248][ T3941] ? __ia32_sys_getpeername+0xd0/0xd0 [ 805.230251][ T3941] ? __lock_release.isra.0+0x59/0x170 [ 805.230252][ T3941] ? __rwlock_init+0x150/0x150 [ 805.230255][ T3941] ? set_compat_user_sigmask+0x200/0x200 [ 805.230258][ T3941] __x64_sys_sendto+0xe4/0x1f0 [ 805.230260][ T3941] ? trace_irq_enable.constprop.0+0x13c/0x190 [ 805.230264][ T3941] ? lockdep_hardirqs_on+0x84/0x130 [ 805.230265][ T3941] ? do_syscall_64+0x87/0xfc0 [ 805.230266][ T3941] do_syscall_64+0x117/0xfc0 [ 805.230268][ T3941] ? exc_page_fault+0xaf/0xd0 [ 805.230269][ T3941] entry_SYSCALL_64_after_hwframe+0x4b/0x53 [ 805.230271][ T3941] RIP: 0033:0x7fe647a529a2 [ 805.230275][ T3941] 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 [ 805.230276][ T3941] RSP: 002b:00007ffc604fb9e8 EFLAGS: 00000246 ORIG_RAX: 000000000000002c [ 805.230279][ T3941] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fe647a529a2 [ 805.230280][ T3941] RDX: 000000000000001c RSI: 00007ffc604fba80 RDI: 0000000000000006 [ 805.230281][ T3941] RBP: 00007ffc604fba10 R08: 00007ffc604fbe9c R09: 000000000000000c [ 805.230282][ T3941] R10: 0000000000000000 R11: 0000000000000246 R12: 00007ffc604fc698 [ 805.230283][ T3941] R13: 0000000000000001 R14: 00007fe647c11000 R15: 0000000000409e00 [ 805.230285][ T3941] [ 805.238147][ T3941] nci: __nci_request: wait_for_completion_interruptible_timeout failed -512