============================================
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