[v5.15] BUG: sleeping function called from invalid context in __lock_sock_fast

0 views
Skip to first unread message

syzbot

unread,
Dec 3, 2023, 10:34:21 AM12/3/23
to syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 9b91d36ba301 Linux 5.15.141
git tree: linux-5.15.y
console output: https://syzkaller.appspot.com/x/log.txt?x=1461ecbae80000
kernel config: https://syzkaller.appspot.com/x/.config?x=31f4c22724493853
dashboard link: https://syzkaller.appspot.com/bug?extid=94530140a4f7179fae70
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/5fc81554d3d4/disk-9b91d36b.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/191387cf41a2/vmlinux-9b91d36b.xz
kernel image: https://storage.googleapis.com/syzbot-assets/8d074d8a66a4/bzImage-9b91d36b.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+945301...@syzkaller.appspotmail.com

BUG: sleeping function called from invalid context at net/core/sock.c:3263
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 9082, name: syz-executor.1
7 locks held by syz-executor.1/9082:
#0: ffffffff8d9e3ac8 (sock_diag_mutex){+.+.}-{3:3}, at: sock_diag_rcv+0x17/0x40 net/core/sock_diag.c:275
#1: ffffffff8d9e3928 (sock_diag_table_mutex){+.+.}-{3:3}, at: sock_diag_rcv_msg+0xb8/0x400 net/core/sock_diag.c:255
#2: ffff888023748690 (nlk_cb_mutex-SOCK_DIAG){+.+.}-{3:3}, at: netlink_dump+0xd0/0xc40 net/netlink/af_netlink.c:2227
#3: ffffffff8dac1e08 (inet_diag_table_mutex){+.+.}-{3:3}, at: inet_diag_lock_handler net/ipv4/inet_diag.c:63 [inline]
#3: ffffffff8dac1e08 (inet_diag_table_mutex){+.+.}-{3:3}, at: __inet_diag_dump+0x191/0x3a0 net/ipv4/inet_diag.c:1177
#4: ffffffff8c91f0e0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x5/0x30 include/linux/rcupdate.h:268
#5: ffffc90001882f30 (&h->lhash2[i].lock){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline]
#5: ffffc90001882f30 (&h->lhash2[i].lock){+.+.}-{2:2}, at: mptcp_diag_dump_listeners net/mptcp/mptcp_diag.c:95 [inline]
#5: ffffc90001882f30 (&h->lhash2[i].lock){+.+.}-{2:2}, at: mptcp_diag_dump+0x869/0x1330 net/mptcp/mptcp_diag.c:194
#6: ffff8880811c0120 (msk_lock-AF_INET){+.+.}-{0:0}, at: inet_sk_diag_fill+0xf6a/0x1cb0 net/ipv4/inet_diag.c:342
Preemption disabled at:
[<0000000000000000>] 0x0
CPU: 1 PID: 9082 Comm: syz-executor.1 Not tainted 5.15.141-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 11/10/2023
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x1e3/0x2cb lib/dump_stack.c:106
___might_sleep+0x547/0x6a0 kernel/sched/core.c:9626
__lock_sock_fast+0x2f/0xe0 net/core/sock.c:3263
lock_sock_fast include/net/sock.h:1702 [inline]
mptcp_diag_get_info+0x282/0xa10 net/mptcp/mptcp_diag.c:224
inet_sk_diag_fill+0xf6a/0x1cb0 net/ipv4/inet_diag.c:342
sk_diag_dump net/mptcp/mptcp_diag.c:24 [inline]
mptcp_diag_dump_listeners net/mptcp/mptcp_diag.c:122 [inline]
mptcp_diag_dump+0xd1d/0x1330 net/mptcp/mptcp_diag.c:194
__inet_diag_dump+0x20e/0x3a0 net/ipv4/inet_diag.c:1179
inet_diag_dump_compat+0x1bd/0x2d0 net/ipv4/inet_diag.c:1287
netlink_dump+0x606/0xc40 net/netlink/af_netlink.c:2279
__netlink_dump_start+0x52f/0x6f0 net/netlink/af_netlink.c:2384
netlink_dump_start include/linux/netlink.h:258 [inline]
inet_diag_rcv_msg_compat+0x202/0x4c0 net/ipv4/inet_diag.c:1321
sock_diag_rcv_msg+0xd5/0x400
netlink_rcv_skb+0x1cf/0x410 net/netlink/af_netlink.c:2505
sock_diag_rcv+0x26/0x40 net/core/sock_diag.c:276
netlink_unicast_kernel net/netlink/af_netlink.c:1330 [inline]
netlink_unicast+0x7b6/0x980 net/netlink/af_netlink.c:1356
netlink_sendmsg+0xa30/0xd60 net/netlink/af_netlink.c:1924
sock_sendmsg_nosec net/socket.c:704 [inline]
__sock_sendmsg net/socket.c:716 [inline]
sock_sendmsg net/socket.c:738 [inline]
kernel_sendmsg+0x1dc/0x290 net/socket.c:761
sock_no_sendpage+0x156/0x1c0 net/core/sock.c:3017
kernel_sendpage+0x2e0/0x390 net/socket.c:3532
sock_sendpage+0x7f/0xb0 net/socket.c:1023
pipe_to_sendpage+0x260/0x350 fs/splice.c:364
splice_from_pipe_feed fs/splice.c:418 [inline]
__splice_from_pipe+0x33b/0x890 fs/splice.c:562
splice_from_pipe fs/splice.c:597 [inline]
generic_splice_sendpage+0x195/0x220 fs/splice.c:746
do_splice_from fs/splice.c:767 [inline]
direct_splice_actor+0xe3/0x1c0 fs/splice.c:936
splice_direct_to_actor+0x500/0xc10 fs/splice.c:891
do_splice_direct+0x285/0x3d0 fs/splice.c:979
do_sendfile+0x625/0xff0 fs/read_write.c:1249
__do_sys_sendfile64 fs/read_write.c:1317 [inline]
__se_sys_sendfile64+0x178/0x1e0 fs/read_write.c:1303
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x61/0xcb
RIP: 0033:0x7f6ddee5eae9
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 e1 20 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007f6ddd3e00c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000028
RAX: ffffffffffffffda RBX: 00007f6ddef7df80 RCX: 00007f6ddee5eae9
RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000005
RBP: 00007f6ddeeaa47a R08: 0000000000000000 R09: 0000000000000000
R10: 0000000021fd1fff R11: 0000000000000246 R12: 0000000000000000
R13: 000000000000000b R14: 00007f6ddef7df80 R15: 00007ffdbb9ac358
</TASK>


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

syzbot

unread,
Feb 26, 2024, 7:29:22 PMFeb 26
to syzkaller...@googlegroups.com
syzbot has found a reproducer for the following issue on:

HEAD commit: 458ce51d0356 Linux 5.15.149
git tree: linux-5.15.y
console output: https://syzkaller.appspot.com/x/log.txt?x=13e664ca180000
kernel config: https://syzkaller.appspot.com/x/.config?x=72292cff014cb054
dashboard link: https://syzkaller.appspot.com/bug?extid=94530140a4f7179fae70
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
userspace arch: arm64
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1485e522180000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1421f4e4180000

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/5e02146c6560/disk-458ce51d.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/267e4c48f387/vmlinux-458ce51d.xz
kernel image: https://storage.googleapis.com/syzbot-assets/e46fd8f3e04b/Image-458ce51d.gz.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+945301...@syzkaller.appspotmail.com

BUG: sleeping function called from invalid context at net/core/sock.c:3271
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 3965, name: syz-executor351
7 locks held by syz-executor351/3965:
#0: ffff800016a14388 (sock_diag_mutex){+.+.}-{3:3}, at: sock_diag_rcv+0x2c/0x54 net/core/sock_diag.c:275
#1: ffff800016a141e8 (sock_diag_table_mutex){+.+.}-{3:3}, at: sock_diag_rcv_msg+0x15c/0x39c net/core/sock_diag.c:255
#2: ffff0000cfd35690 (nlk_cb_mutex-SOCK_DIAG){+.+.}-{3:3}, at: netlink_dump+0xbc/0xa88 net/netlink/af_netlink.c:2227
#3: ffff800016aef6a8 (inet_diag_table_mutex){+.+.}-{3:3}, at: inet_diag_lock_handler net/ipv4/inet_diag.c:63 [inline]
#3: ffff800016aef6a8 (inet_diag_table_mutex){+.+.}-{3:3}, at: __inet_diag_dump+0x17c/0x33c net/ipv4/inet_diag.c:1177
#4: ffff800014af16a0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire+0x10/0x4c include/linux/rcupdate.h:268
#5: ffff0000c56325e0 (&h->lhash2[i].lock){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline]
#5: ffff0000c56325e0 (&h->lhash2[i].lock){+.+.}-{2:2}, at: mptcp_diag_dump_listeners net/mptcp/mptcp_diag.c:95 [inline]
#5: ffff0000c56325e0 (&h->lhash2[i].lock){+.+.}-{2:2}, at: mptcp_diag_dump+0x7b0/0x10dc net/mptcp/mptcp_diag.c:194
#6: ffff0000d7940120 (msk_lock-AF_INET){+.+.}-{0:0}, at: inet_sk_diag_fill+0xcb8/0x17b4 net/ipv4/inet_diag.c:342
Preemption disabled at:
[<ffff8000119749a8>] spin_lock include/linux/spinlock.h:363 [inline]
[<ffff8000119749a8>] mptcp_diag_dump_listeners net/mptcp/mptcp_diag.c:95 [inline]
[<ffff8000119749a8>] mptcp_diag_dump+0x7b0/0x10dc net/mptcp/mptcp_diag.c:194
CPU: 0 PID: 3965 Comm: syz-executor351 Not tainted 5.15.149-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/25/2024
Call trace:
dump_backtrace+0x0/0x530 arch/arm64/kernel/stacktrace.c:152
show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:216
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x108/0x170 lib/dump_stack.c:106
dump_stack+0x1c/0x58 lib/dump_stack.c:113
___might_sleep+0x380/0x4dc kernel/sched/core.c:9626
__might_sleep+0x98/0xf0 kernel/sched/core.c:9580
__lock_sock_fast+0x3c/0xf0 net/core/sock.c:3271
lock_sock_fast include/net/sock.h:1702 [inline]
mptcp_diag_get_info+0x210/0x8a0 net/mptcp/mptcp_diag.c:224
inet_sk_diag_fill+0xcb8/0x17b4 net/ipv4/inet_diag.c:342
sk_diag_dump net/mptcp/mptcp_diag.c:24 [inline]
mptcp_diag_dump_listeners net/mptcp/mptcp_diag.c:122 [inline]
mptcp_diag_dump+0xb4c/0x10dc net/mptcp/mptcp_diag.c:194
__inet_diag_dump+0x1e8/0x33c net/ipv4/inet_diag.c:1179
inet_diag_dump_compat+0x17c/0x288 net/ipv4/inet_diag.c:1287
netlink_dump+0x470/0xa88 net/netlink/af_netlink.c:2279
__netlink_dump_start+0x488/0x6ec net/netlink/af_netlink.c:2384
netlink_dump_start include/linux/netlink.h:258 [inline]
inet_diag_rcv_msg_compat+0x1c8/0x41c net/ipv4/inet_diag.c:1321
sock_diag_rcv_msg+0x174/0x39c
netlink_rcv_skb+0x20c/0x3b8 net/netlink/af_netlink.c:2505
sock_diag_rcv+0x3c/0x54 net/core/sock_diag.c:276
netlink_unicast_kernel net/netlink/af_netlink.c:1330 [inline]
netlink_unicast+0x664/0x938 net/netlink/af_netlink.c:1356
netlink_sendmsg+0x844/0xb38 net/netlink/af_netlink.c:1924
sock_sendmsg_nosec net/socket.c:704 [inline]
__sock_sendmsg net/socket.c:716 [inline]
____sys_sendmsg+0x584/0x870 net/socket.c:2431
___sys_sendmsg+0x214/0x294 net/socket.c:2485
__sys_sendmsg net/socket.c:2514 [inline]
__do_sys_sendmsg net/socket.c:2523 [inline]
__se_sys_sendmsg net/socket.c:2521 [inline]
__arm64_sys_sendmsg+0x1ac/0x25c net/socket.c:2521
__invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52
el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181
el0_svc+0x7c/0x1f0 arch/arm64/kernel/entry-common.c:608
el0t_64_sync_handler+0x84/0xe4 arch/arm64/kernel/entry-common.c:626
el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
Reply all
Reply to author
Forward
0 new messages