============================================ WARNING: possible recursive locking detected syzkaller #0 Tainted: G L -------------------------------------------- kworker/u32:2/46 is trying to acquire lock: ffff88802528c4a0 (k-sk_lock-AF_INET6){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1709 [inline] ffff88802528c4a0 (k-sk_lock-AF_INET6){+.+.}-{0:0}, at: inet6_getname+0x1a2/0x860 net/ipv6/af_inet6.c:533 but task is already holding lock: ffff88802528c4a0 (k-sk_lock-AF_INET6){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1709 [inline] ffff88802528c4a0 (k-sk_lock-AF_INET6){+.+.}-{0:0}, at: rds_tcp_recv_path+0x88/0xf0 net/rds/tcp_recv.c:304 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(k-sk_lock-AF_INET6); lock(k-sk_lock-AF_INET6); *** DEADLOCK *** May be due to missing lock nesting notation 4 locks held by kworker/u32:2/46: #0: ffff88804e624948 ((wq_completion)krds_cp_wq#1/0#2){+.+.}-{0:0}, at: process_one_work+0x1287/0x1920 kernel/workqueue.c:3250 #1: ffffc900006dfd08 ((work_completion)(&(&cp->cp_recv_w)->work)){+.+.}-{0:0}, at: process_one_work+0x93c/0x1920 kernel/workqueue.c:3251 #2: ffff88802528c4a0 (k-sk_lock-AF_INET6){+.+.}-{0:0}, at: lock_sock include/net/sock.h:1709 [inline] #2: ffff88802528c4a0 (k-sk_lock-AF_INET6){+.+.}-{0:0}, at: rds_tcp_recv_path+0x88/0xf0 net/rds/tcp_recv.c:304 #3: ffff88802528c648 (k-clock-AF_INET6){++.-}-{3:3}, at: rds_tcp_data_ready+0x90/0x790 net/rds/tcp_recv.c:320 stack backtrace: CPU: 0 UID: 0 PID: 46 Comm: kworker/u32:2 Tainted: G L syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Workqueue: krds_cp_wq#1/0 rds_recv_worker Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120 print_deadlock_bug.cold+0xbd/0xca kernel/locking/lockdep.c:3041 check_deadlock kernel/locking/lockdep.c:3093 [inline] validate_chain kernel/locking/lockdep.c:3895 [inline] __lock_acquire+0x12bb/0x2630 kernel/locking/lockdep.c:5237 lock_acquire kernel/locking/lockdep.c:5868 [inline] lock_acquire+0x1cf/0x380 kernel/locking/lockdep.c:5825 lock_sock_nested+0x41/0xf0 net/core/sock.c:3780 lock_sock include/net/sock.h:1709 [inline] inet6_getname+0x1a2/0x860 net/ipv6/af_inet6.c:533 rds_tcp_get_peer_sport+0x7c/0x110 net/rds/tcp_listen.c:70 rds_tcp_conn_slots_available+0x279/0x390 net/rds/tcp_listen.c:149 rds_recv_hs_exthdrs+0x5cb/0x7e0 net/rds/recv.c:265 rds_recv_incoming+0xd6c/0x1150 net/rds/recv.c:381 rds_tcp_data_recv+0x278/0xce0 net/rds/tcp_recv.c:243 __tcp_read_sock+0x204/0x8d0 net/ipv4/tcp.c:1702 rds_tcp_read_sock+0x12e/0x280 net/rds/tcp_recv.c:277 rds_tcp_data_ready+0x1c9/0x790 net/rds/tcp_recv.c:331 tcp_data_ready+0x114/0x5a0 net/ipv4/tcp_input.c:5629 tcp_data_queue+0x1aca/0x4fd0 net/ipv4/tcp_input.c:5719 tcp_rcv_established+0xb64/0x3980 net/ipv4/tcp_input.c:6710 tcp_v6_do_rcv+0x118b/0x1dd0 net/ipv6/tcp_ipv6.c:1609 sk_backlog_rcv include/net/sock.h:1185 [inline] __release_sock+0x151/0x440 net/core/sock.c:3213 release_sock+0x5a/0x220 net/core/sock.c:3795 rds_tcp_recv_path+0xb7/0xf0 net/rds/tcp_recv.c:306 rds_recv_worker+0xf9/0x3b0 net/rds/threads.c:226 process_one_work+0x9d7/0x1920 kernel/workqueue.c:3275 process_scheduled_works kernel/workqueue.c:3358 [inline] worker_thread+0x5da/0xe40 kernel/workqueue.c:3439 kthread+0x370/0x450 kernel/kthread.c:467 ret_from_fork+0x754/0xd80 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 BUG: sleeping function called from invalid context at net/core/sock.c:3782 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 46, name: kworker/u32:2 preempt_count: 201, expected: 0 RCU nest depth: 0, expected: 0 INFO: lockdep is turned off. Preemption disabled at: [<0000000000000000>] 0x0 CPU: 0 UID: 0 PID: 46 Comm: kworker/u32:2 Tainted: G L syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 Workqueue: krds_cp_wq#1/0 rds_recv_worker Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120 __might_resched.cold+0x1ec/0x232 kernel/sched/core.c:8884 lock_sock_nested+0x52/0xf0 net/core/sock.c:3782 lock_sock include/net/sock.h:1709 [inline] inet6_getname+0x1a2/0x860 net/ipv6/af_inet6.c:533 rds_tcp_get_peer_sport+0x7c/0x110 net/rds/tcp_listen.c:70 rds_tcp_conn_slots_available+0x279/0x390 net/rds/tcp_listen.c:149 rds_recv_hs_exthdrs+0x5cb/0x7e0 net/rds/recv.c:265 rds_recv_incoming+0xd6c/0x1150 net/rds/recv.c:381 rds_tcp_data_recv+0x278/0xce0 net/rds/tcp_recv.c:243 __tcp_read_sock+0x204/0x8d0 net/ipv4/tcp.c:1702 rds_tcp_read_sock+0x12e/0x280 net/rds/tcp_recv.c:277 rds_tcp_data_ready+0x1c9/0x790 net/rds/tcp_recv.c:331 tcp_data_ready+0x114/0x5a0 net/ipv4/tcp_input.c:5629 tcp_data_queue+0x1aca/0x4fd0 net/ipv4/tcp_input.c:5719 tcp_rcv_established+0xb64/0x3980 net/ipv4/tcp_input.c:6710 tcp_v6_do_rcv+0x118b/0x1dd0 net/ipv6/tcp_ipv6.c:1609 sk_backlog_rcv include/net/sock.h:1185 [inline] __release_sock+0x151/0x440 net/core/sock.c:3213 release_sock+0x5a/0x220 net/core/sock.c:3795 rds_tcp_recv_path+0xb7/0xf0 net/rds/tcp_recv.c:306 rds_recv_worker+0xf9/0x3b0 net/rds/threads.c:226 process_one_work+0x9d7/0x1920 kernel/workqueue.c:3275 process_scheduled_works kernel/workqueue.c:3358 [inline] worker_thread+0x5da/0xe40 kernel/workqueue.c:3439 kthread+0x370/0x450 kernel/kthread.c:467 ret_from_fork+0x754/0xd80 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 BUG: scheduling while atomic: kworker/u32:2/46/0x00000202 INFO: lockdep is turned off. Modules linked in: Preemption disabled at: [<0000000000000000>] 0x0