* [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info @ 2025-08-11 18:59 syzbot 2025-08-12 9:26 ` Michael S. Tsirkin 2025-08-12 9:27 ` Michael S. Tsirkin 0 siblings, 2 replies; 14+ messages in thread From: syzbot @ 2025-08-11 18:59 UTC (permalink / raw) To: davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, mst, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo Hello, syzbot found the following issue on: HEAD commit: 37816488247d Merge tag 'net-6.17-rc1' of git://git.kernel... git tree: upstream console output: https://syzkaller.appspot.com/x/log.txt?x=10b3b2f0580000 kernel config: https://syzkaller.appspot.com/x/.config?x=e143c1cd9dadd720 dashboard link: https://syzkaller.appspot.com/bug?extid=b4d960daf7a3c7c2b7b1 compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 syz repro: https://syzkaller.appspot.com/x/repro.syz?x=10f0f042580000 C reproducer: https://syzkaller.appspot.com/x/repro.c?x=14855434580000 Downloadable assets: disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-37816488.raw.xz vmlinux: https://storage.googleapis.com/syzbot-assets/74b3ac8946d4/vmlinux-37816488.xz kernel image: https://storage.googleapis.com/syzbot-assets/a2b391aacaec/bzImage-37816488.xz IMPORTANT: if you fix the issue, please add the following tag to the commit: Reported-by: syzbot+b4d960daf7a3c7c2b7b1@syzkaller.appspotmail.com ------------[ cut here ]------------ 'send_pkt()' returns 0, but 65536 expected WARNING: CPU: 0 PID: 5503 at net/vmw_vsock/virtio_transport_common.c:428 virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 Modules linked in: CPU: 0 UID: 0 PID: 5503 Comm: syz.0.17 Not tainted 6.16.0-syzkaller-12063-g37816488247d #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 Code: 0f 0b 90 bd f2 ff ff ff eb bc e8 8a 20 65 f6 c6 05 94 cf 32 04 01 90 48 c7 c7 00 c3 b8 8c 44 89 f6 4c 89 ea e8 40 af 28 f6 90 <0f> 0b 90 90 e9 e1 fe ff ff e8 61 20 65 f6 90 0f 0b 90 e9 c5 f7 ff RSP: 0018:ffffc900027ff530 EFLAGS: 00010246 RAX: d7fcdfc663889c00 RBX: 0000000000010000 RCX: ffff888000e1a440 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000002 RBP: ffffffff8f8764d0 R08: ffff88801fc24253 R09: 1ffff11003f8484a R10: dffffc0000000000 R11: ffffed1003f8484b R12: dffffc0000000000 R13: 0000000000010000 R14: 0000000000000000 R15: ffff888058b48024 FS: 000055556bda1500(0000) GS:ffff88808d218000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000020000003f000 CR3: 000000003f6db000 CR4: 0000000000352ef0 Call Trace: <TASK> virtio_transport_stream_enqueue net/vmw_vsock/virtio_transport_common.c:1111 [inline] virtio_transport_seqpacket_enqueue+0x143/0x1c0 net/vmw_vsock/virtio_transport_common.c:839 vsock_connectible_sendmsg+0xac7/0x1050 net/vmw_vsock/af_vsock.c:2140 sock_sendmsg_nosec net/socket.c:714 [inline] __sock_sendmsg+0x21c/0x270 net/socket.c:729 ____sys_sendmsg+0x52d/0x830 net/socket.c:2614 ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668 __sys_sendmmsg+0x227/0x430 net/socket.c:2757 __do_sys_sendmmsg net/socket.c:2784 [inline] __se_sys_sendmmsg net/socket.c:2781 [inline] __x64_sys_sendmmsg+0xa0/0xc0 net/socket.c:2781 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fddc238ebe9 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007ffd48081028 EFLAGS: 00000246 ORIG_RAX: 0000000000000133 RAX: ffffffffffffffda RBX: 00007fddc25b5fa0 RCX: 00007fddc238ebe9 RDX: 0000000000000001 RSI: 0000200000000100 RDI: 0000000000000004 RBP: 00007fddc2411e19 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000024008094 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fddc25b5fa0 R14: 00007fddc25b5fa0 R15: 0000000000000004 </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 syzkaller@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 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. 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-11 18:59 [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info syzbot @ 2025-08-12 9:26 ` Michael S. Tsirkin 2025-08-12 9:48 ` syzbot 2025-08-12 9:27 ` Michael S. Tsirkin 1 sibling, 1 reply; 14+ messages in thread From: Michael S. Tsirkin @ 2025-08-12 9:26 UTC (permalink / raw) To: syzbot Cc: davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo On Mon, Aug 11, 2025 at 11:59:30AM -0700, syzbot wrote: > Hello, > > syzbot found the following issue on: > > HEAD commit: 37816488247d Merge tag 'net-6.17-rc1' of git://git.kernel... > git tree: upstream > console output: https://syzkaller.appspot.com/x/log.txt?x=10b3b2f0580000 > kernel config: https://syzkaller.appspot.com/x/.config?x=e143c1cd9dadd720 > dashboard link: https://syzkaller.appspot.com/bug?extid=b4d960daf7a3c7c2b7b1 > compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=10f0f042580000 > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=14855434580000 > > Downloadable assets: > disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-37816488.raw.xz > vmlinux: https://storage.googleapis.com/syzbot-assets/74b3ac8946d4/vmlinux-37816488.xz > kernel image: https://storage.googleapis.com/syzbot-assets/a2b391aacaec/bzImage-37816488.xz > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > Reported-by: syzbot+b4d960daf7a3c7c2b7b1@syzkaller.appspotmail.com > > ------------[ cut here ]------------ > 'send_pkt()' returns 0, but 65536 expected > WARNING: CPU: 0 PID: 5503 at net/vmw_vsock/virtio_transport_common.c:428 virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 > Modules linked in: > CPU: 0 UID: 0 PID: 5503 Comm: syz.0.17 Not tainted 6.16.0-syzkaller-12063-g37816488247d #0 PREEMPT(full) > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 > RIP: 0010:virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 > Code: 0f 0b 90 bd f2 ff ff ff eb bc e8 8a 20 65 f6 c6 05 94 cf 32 04 01 90 48 c7 c7 00 c3 b8 8c 44 89 f6 4c 89 ea e8 40 af 28 f6 90 <0f> 0b 90 90 e9 e1 fe ff ff e8 61 20 65 f6 90 0f 0b 90 e9 c5 f7 ff > RSP: 0018:ffffc900027ff530 EFLAGS: 00010246 > RAX: d7fcdfc663889c00 RBX: 0000000000010000 RCX: ffff888000e1a440 > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000002 > RBP: ffffffff8f8764d0 R08: ffff88801fc24253 R09: 1ffff11003f8484a > R10: dffffc0000000000 R11: ffffed1003f8484b R12: dffffc0000000000 > R13: 0000000000010000 R14: 0000000000000000 R15: ffff888058b48024 > FS: 000055556bda1500(0000) GS:ffff88808d218000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 000020000003f000 CR3: 000000003f6db000 CR4: 0000000000352ef0 > Call Trace: > <TASK> > virtio_transport_stream_enqueue net/vmw_vsock/virtio_transport_common.c:1111 [inline] > virtio_transport_seqpacket_enqueue+0x143/0x1c0 net/vmw_vsock/virtio_transport_common.c:839 > vsock_connectible_sendmsg+0xac7/0x1050 net/vmw_vsock/af_vsock.c:2140 > sock_sendmsg_nosec net/socket.c:714 [inline] > __sock_sendmsg+0x21c/0x270 net/socket.c:729 > ____sys_sendmsg+0x52d/0x830 net/socket.c:2614 > ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668 > __sys_sendmmsg+0x227/0x430 net/socket.c:2757 > __do_sys_sendmmsg net/socket.c:2784 [inline] > __se_sys_sendmmsg net/socket.c:2781 [inline] > __x64_sys_sendmmsg+0xa0/0xc0 net/socket.c:2781 > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > RIP: 0033:0x7fddc238ebe9 > Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48 > RSP: 002b:00007ffd48081028 EFLAGS: 00000246 ORIG_RAX: 0000000000000133 > RAX: ffffffffffffffda RBX: 00007fddc25b5fa0 RCX: 00007fddc238ebe9 > RDX: 0000000000000001 RSI: 0000200000000100 RDI: 0000000000000004 > RBP: 00007fddc2411e19 R08: 0000000000000000 R09: 0000000000000000 > R10: 0000000024008094 R11: 0000000000000246 R12: 0000000000000000 > R13: 00007fddc25b5fa0 R14: 00007fddc25b5fa0 R15: 0000000000000004 > </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 syzkaller@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 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. #syz test: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 8ca76151d2c8219edea82f1925a2a25907ff6a9d > 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-12 9:26 ` Michael S. Tsirkin @ 2025-08-12 9:48 ` syzbot 0 siblings, 0 replies; 14+ messages in thread From: syzbot @ 2025-08-12 9:48 UTC (permalink / raw) To: davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, mst, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo Hello, syzbot has tested the proposed patch and the reproducer did not trigger any issue: Reported-by: syzbot+b4d960daf7a3c7c2b7b1@syzkaller.appspotmail.com Tested-by: syzbot+b4d960daf7a3c7c2b7b1@syzkaller.appspotmail.com Tested on: commit: 8ca76151 vsock/virtio: Rename virtio_vsock_skb_rx_put() git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git console output: https://syzkaller.appspot.com/x/log.txt?x=15d54af0580000 kernel config: https://syzkaller.appspot.com/x/.config?x=84141250092a114f dashboard link: https://syzkaller.appspot.com/bug?extid=b4d960daf7a3c7c2b7b1 compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 Note: no patches were applied. Note: testing is done by a robot and is best-effort only. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-11 18:59 [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info syzbot 2025-08-12 9:26 ` Michael S. Tsirkin @ 2025-08-12 9:27 ` Michael S. Tsirkin 2025-08-12 10:03 ` syzbot 1 sibling, 1 reply; 14+ messages in thread From: Michael S. Tsirkin @ 2025-08-12 9:27 UTC (permalink / raw) To: syzbot Cc: davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo On Mon, Aug 11, 2025 at 11:59:30AM -0700, syzbot wrote: > Hello, > > syzbot found the following issue on: > > HEAD commit: 37816488247d Merge tag 'net-6.17-rc1' of git://git.kernel... > git tree: upstream > console output: https://syzkaller.appspot.com/x/log.txt?x=10b3b2f0580000 > kernel config: https://syzkaller.appspot.com/x/.config?x=e143c1cd9dadd720 > dashboard link: https://syzkaller.appspot.com/bug?extid=b4d960daf7a3c7c2b7b1 > compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 > syz repro: https://syzkaller.appspot.com/x/repro.syz?x=10f0f042580000 > C reproducer: https://syzkaller.appspot.com/x/repro.c?x=14855434580000 > > Downloadable assets: > disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-37816488.raw.xz > vmlinux: https://storage.googleapis.com/syzbot-assets/74b3ac8946d4/vmlinux-37816488.xz > kernel image: https://storage.googleapis.com/syzbot-assets/a2b391aacaec/bzImage-37816488.xz > > IMPORTANT: if you fix the issue, please add the following tag to the commit: > Reported-by: syzbot+b4d960daf7a3c7c2b7b1@syzkaller.appspotmail.com > > ------------[ cut here ]------------ > 'send_pkt()' returns 0, but 65536 expected > WARNING: CPU: 0 PID: 5503 at net/vmw_vsock/virtio_transport_common.c:428 virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 > Modules linked in: > CPU: 0 UID: 0 PID: 5503 Comm: syz.0.17 Not tainted 6.16.0-syzkaller-12063-g37816488247d #0 PREEMPT(full) > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 > RIP: 0010:virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 > Code: 0f 0b 90 bd f2 ff ff ff eb bc e8 8a 20 65 f6 c6 05 94 cf 32 04 01 90 48 c7 c7 00 c3 b8 8c 44 89 f6 4c 89 ea e8 40 af 28 f6 90 <0f> 0b 90 90 e9 e1 fe ff ff e8 61 20 65 f6 90 0f 0b 90 e9 c5 f7 ff > RSP: 0018:ffffc900027ff530 EFLAGS: 00010246 > RAX: d7fcdfc663889c00 RBX: 0000000000010000 RCX: ffff888000e1a440 > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000002 > RBP: ffffffff8f8764d0 R08: ffff88801fc24253 R09: 1ffff11003f8484a > R10: dffffc0000000000 R11: ffffed1003f8484b R12: dffffc0000000000 > R13: 0000000000010000 R14: 0000000000000000 R15: ffff888058b48024 > FS: 000055556bda1500(0000) GS:ffff88808d218000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 000020000003f000 CR3: 000000003f6db000 CR4: 0000000000352ef0 > Call Trace: > <TASK> > virtio_transport_stream_enqueue net/vmw_vsock/virtio_transport_common.c:1111 [inline] > virtio_transport_seqpacket_enqueue+0x143/0x1c0 net/vmw_vsock/virtio_transport_common.c:839 > vsock_connectible_sendmsg+0xac7/0x1050 net/vmw_vsock/af_vsock.c:2140 > sock_sendmsg_nosec net/socket.c:714 [inline] > __sock_sendmsg+0x21c/0x270 net/socket.c:729 > ____sys_sendmsg+0x52d/0x830 net/socket.c:2614 > ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668 > __sys_sendmmsg+0x227/0x430 net/socket.c:2757 > __do_sys_sendmmsg net/socket.c:2784 [inline] > __se_sys_sendmmsg net/socket.c:2781 [inline] > __x64_sys_sendmmsg+0xa0/0xc0 net/socket.c:2781 > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > RIP: 0033:0x7fddc238ebe9 > Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48 > RSP: 002b:00007ffd48081028 EFLAGS: 00000246 ORIG_RAX: 0000000000000133 > RAX: ffffffffffffffda RBX: 00007fddc25b5fa0 RCX: 00007fddc238ebe9 > RDX: 0000000000000001 RSI: 0000200000000100 RDI: 0000000000000004 > RBP: 00007fddc2411e19 R08: 0000000000000000 R09: 0000000000000000 > R10: 0000000024008094 R11: 0000000000000246 R12: 0000000000000000 > R13: 00007fddc25b5fa0 R14: 00007fddc25b5fa0 R15: 0000000000000004 > </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 syzkaller@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 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. #syz test: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 6693731487a8145a9b039bc983d77edc47693855 > 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 ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-12 9:27 ` Michael S. Tsirkin @ 2025-08-12 10:03 ` syzbot 2025-08-12 10:15 ` Michael S. Tsirkin 0 siblings, 1 reply; 14+ messages in thread From: syzbot @ 2025-08-12 10:03 UTC (permalink / raw) To: davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, mst, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo Hello, syzbot has tested the proposed patch but the reproducer is still triggering an issue: WARNING in virtio_transport_send_pkt_info ------------[ cut here ]------------ 'send_pkt()' returns 0, but 65536 expected WARNING: CPU: 0 PID: 5936 at net/vmw_vsock/virtio_transport_common.c:428 virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 Modules linked in: CPU: 0 UID: 0 PID: 5936 Comm: syz.0.17 Not tainted 6.16.0-rc6-syzkaller-00030-g6693731487a8 #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 Code: 0f 0b 90 bd f2 ff ff ff eb bc e8 2a 15 74 f6 c6 05 17 6f 40 04 01 90 48 c7 c7 00 4b b7 8c 44 89 f6 4c 89 ea e8 e0 f7 37 f6 90 <0f> 0b 90 90 e9 e1 fe ff ff e8 01 15 74 f6 90 0f 0b 90 e9 c5 f7 ff RSP: 0018:ffffc9000cc2f530 EFLAGS: 00010246 RAX: 72837a5a4342cf00 RBX: 0000000000010000 RCX: ffff888033218000 RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000002 RBP: ffffffff8f8592b0 R08: 0000000000000003 R09: 0000000000000004 R10: dffffc0000000000 R11: fffffbfff1bfa6ec R12: dffffc0000000000 R13: 0000000000010000 R14: 0000000000000000 R15: ffff8880406730e4 FS: 00007fc0bd7eb6c0(0000) GS:ffff88808d230000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fd5857ec368 CR3: 00000000517cf000 CR4: 0000000000352ef0 Call Trace: <TASK> virtio_transport_stream_enqueue net/vmw_vsock/virtio_transport_common.c:1111 [inline] virtio_transport_seqpacket_enqueue+0x143/0x1c0 net/vmw_vsock/virtio_transport_common.c:839 vsock_connectible_sendmsg+0xac4/0x1050 net/vmw_vsock/af_vsock.c:2123 sock_sendmsg_nosec net/socket.c:712 [inline] __sock_sendmsg+0x219/0x270 net/socket.c:727 ____sys_sendmsg+0x52d/0x830 net/socket.c:2566 ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2620 __sys_sendmmsg+0x227/0x430 net/socket.c:2709 __do_sys_sendmmsg net/socket.c:2736 [inline] __se_sys_sendmmsg net/socket.c:2733 [inline] __x64_sys_sendmmsg+0xa0/0xc0 net/socket.c:2733 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fc0bc98ebe9 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fc0bd7eb038 EFLAGS: 00000246 ORIG_RAX: 0000000000000133 RAX: ffffffffffffffda RBX: 00007fc0bcbb5fa0 RCX: 00007fc0bc98ebe9 RDX: 0000000000000001 RSI: 0000200000000100 RDI: 0000000000000004 RBP: 00007fc0bca11e19 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000024008094 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fc0bcbb6038 R14: 00007fc0bcbb5fa0 R15: 00007ffdb7bf09f8 </TASK> Tested on: commit: 66937314 vsock/virtio: Allocate nonlinear SKBs for han.. git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git console output: https://syzkaller.appspot.com/x/log.txt?x=159d75bc580000 kernel config: https://syzkaller.appspot.com/x/.config?x=84141250092a114f dashboard link: https://syzkaller.appspot.com/bug?extid=b4d960daf7a3c7c2b7b1 compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 Note: no patches were applied. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-12 10:03 ` syzbot @ 2025-08-12 10:15 ` Michael S. Tsirkin 2025-08-15 10:09 ` Will Deacon 0 siblings, 1 reply; 14+ messages in thread From: Michael S. Tsirkin @ 2025-08-12 10:15 UTC (permalink / raw) To: syzbot Cc: davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo, Will Deacon On Tue, Aug 12, 2025 at 03:03:02AM -0700, syzbot wrote: > Hello, > > syzbot has tested the proposed patch but the reproducer is still triggering an issue: > WARNING in virtio_transport_send_pkt_info OK so the issue triggers on commit 6693731487a8145a9b039bc983d77edc47693855 Author: Will Deacon <will@kernel.org> Date: Thu Jul 17 10:01:16 2025 +0100 vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers but does not trigger on: commit 8ca76151d2c8219edea82f1925a2a25907ff6a9d Author: Will Deacon <will@kernel.org> Date: Thu Jul 17 10:01:15 2025 +0100 vsock/virtio: Rename virtio_vsock_skb_rx_put() Will, I suspect your patch merely uncovers a latent bug in zero copy handling elsewhere. Want to take a look? > ------------[ cut here ]------------ > 'send_pkt()' returns 0, but 65536 expected > WARNING: CPU: 0 PID: 5936 at net/vmw_vsock/virtio_transport_common.c:428 virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 > Modules linked in: > CPU: 0 UID: 0 PID: 5936 Comm: syz.0.17 Not tainted 6.16.0-rc6-syzkaller-00030-g6693731487a8 #0 PREEMPT(full) > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 > RIP: 0010:virtio_transport_send_pkt_info+0xd11/0xf00 net/vmw_vsock/virtio_transport_common.c:426 > Code: 0f 0b 90 bd f2 ff ff ff eb bc e8 2a 15 74 f6 c6 05 17 6f 40 04 01 90 48 c7 c7 00 4b b7 8c 44 89 f6 4c 89 ea e8 e0 f7 37 f6 90 <0f> 0b 90 90 e9 e1 fe ff ff e8 01 15 74 f6 90 0f 0b 90 e9 c5 f7 ff > RSP: 0018:ffffc9000cc2f530 EFLAGS: 00010246 > RAX: 72837a5a4342cf00 RBX: 0000000000010000 RCX: ffff888033218000 > RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000002 > RBP: ffffffff8f8592b0 R08: 0000000000000003 R09: 0000000000000004 > R10: dffffc0000000000 R11: fffffbfff1bfa6ec R12: dffffc0000000000 > R13: 0000000000010000 R14: 0000000000000000 R15: ffff8880406730e4 > FS: 00007fc0bd7eb6c0(0000) GS:ffff88808d230000(0000) knlGS:0000000000000000 > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 > CR2: 00007fd5857ec368 CR3: 00000000517cf000 CR4: 0000000000352ef0 > Call Trace: > <TASK> > virtio_transport_stream_enqueue net/vmw_vsock/virtio_transport_common.c:1111 [inline] > virtio_transport_seqpacket_enqueue+0x143/0x1c0 net/vmw_vsock/virtio_transport_common.c:839 > vsock_connectible_sendmsg+0xac4/0x1050 net/vmw_vsock/af_vsock.c:2123 > sock_sendmsg_nosec net/socket.c:712 [inline] > __sock_sendmsg+0x219/0x270 net/socket.c:727 > ____sys_sendmsg+0x52d/0x830 net/socket.c:2566 > ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2620 > __sys_sendmmsg+0x227/0x430 net/socket.c:2709 > __do_sys_sendmmsg net/socket.c:2736 [inline] > __se_sys_sendmmsg net/socket.c:2733 [inline] > __x64_sys_sendmmsg+0xa0/0xc0 net/socket.c:2733 > do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] > do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94 > entry_SYSCALL_64_after_hwframe+0x77/0x7f > RIP: 0033:0x7fc0bc98ebe9 > Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 a8 ff ff ff f7 d8 64 89 01 48 > RSP: 002b:00007fc0bd7eb038 EFLAGS: 00000246 ORIG_RAX: 0000000000000133 > RAX: ffffffffffffffda RBX: 00007fc0bcbb5fa0 RCX: 00007fc0bc98ebe9 > RDX: 0000000000000001 RSI: 0000200000000100 RDI: 0000000000000004 > RBP: 00007fc0bca11e19 R08: 0000000000000000 R09: 0000000000000000 > R10: 0000000024008094 R11: 0000000000000246 R12: 0000000000000000 > R13: 00007fc0bcbb6038 R14: 00007fc0bcbb5fa0 R15: 00007ffdb7bf09f8 > </TASK> > > > Tested on: > > commit: 66937314 vsock/virtio: Allocate nonlinear SKBs for han.. > git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git > console output: https://syzkaller.appspot.com/x/log.txt?x=159d75bc580000 > kernel config: https://syzkaller.appspot.com/x/.config?x=84141250092a114f > dashboard link: https://syzkaller.appspot.com/bug?extid=b4d960daf7a3c7c2b7b1 > compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 > > Note: no patches were applied. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-12 10:15 ` Michael S. Tsirkin @ 2025-08-15 10:09 ` Will Deacon 2025-08-15 10:44 ` Michael S. Tsirkin 0 siblings, 1 reply; 14+ messages in thread From: Will Deacon @ 2025-08-15 10:09 UTC (permalink / raw) To: Michael S. Tsirkin Cc: syzbot, davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo On Tue, Aug 12, 2025 at 06:15:46AM -0400, Michael S. Tsirkin wrote: > On Tue, Aug 12, 2025 at 03:03:02AM -0700, syzbot wrote: > > Hello, > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue: > > WARNING in virtio_transport_send_pkt_info > > OK so the issue triggers on > commit 6693731487a8145a9b039bc983d77edc47693855 > Author: Will Deacon <will@kernel.org> > Date: Thu Jul 17 10:01:16 2025 +0100 > > vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers > > > but does not trigger on: > > commit 8ca76151d2c8219edea82f1925a2a25907ff6a9d > Author: Will Deacon <will@kernel.org> > Date: Thu Jul 17 10:01:15 2025 +0100 > > vsock/virtio: Rename virtio_vsock_skb_rx_put() > > > > Will, I suspect your patch merely uncovers a latent bug > in zero copy handling elsewhere. > Want to take a look? Sorry for the delay, I was debugging something else! I see Hillf already tried some stuff in the other thread, but I can take a look as well. Will ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-15 10:09 ` Will Deacon @ 2025-08-15 10:44 ` Michael S. Tsirkin 2025-08-15 12:00 ` Will Deacon 0 siblings, 1 reply; 14+ messages in thread From: Michael S. Tsirkin @ 2025-08-15 10:44 UTC (permalink / raw) To: Will Deacon Cc: syzbot, davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo On Fri, Aug 15, 2025 at 11:09:24AM +0100, Will Deacon wrote: > On Tue, Aug 12, 2025 at 06:15:46AM -0400, Michael S. Tsirkin wrote: > > On Tue, Aug 12, 2025 at 03:03:02AM -0700, syzbot wrote: > > > Hello, > > > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue: > > > WARNING in virtio_transport_send_pkt_info > > > > OK so the issue triggers on > > commit 6693731487a8145a9b039bc983d77edc47693855 > > Author: Will Deacon <will@kernel.org> > > Date: Thu Jul 17 10:01:16 2025 +0100 > > > > vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers > > > > > > but does not trigger on: > > > > commit 8ca76151d2c8219edea82f1925a2a25907ff6a9d > > Author: Will Deacon <will@kernel.org> > > Date: Thu Jul 17 10:01:15 2025 +0100 > > > > vsock/virtio: Rename virtio_vsock_skb_rx_put() > > > > > > > > Will, I suspect your patch merely uncovers a latent bug > > in zero copy handling elsewhere. > > Want to take a look? > > Sorry for the delay, I was debugging something else! > > I see Hillf already tried some stuff in the other thread, but I can take > a look as well. > > Will I will be frank I don't understand how that patch makes sense though. -- MST ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-15 10:44 ` Michael S. Tsirkin @ 2025-08-15 12:00 ` Will Deacon 2025-08-15 15:48 ` Will Deacon 0 siblings, 1 reply; 14+ messages in thread From: Will Deacon @ 2025-08-15 12:00 UTC (permalink / raw) To: Michael S. Tsirkin Cc: syzbot, davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo On Fri, Aug 15, 2025 at 06:44:47AM -0400, Michael S. Tsirkin wrote: > On Fri, Aug 15, 2025 at 11:09:24AM +0100, Will Deacon wrote: > > On Tue, Aug 12, 2025 at 06:15:46AM -0400, Michael S. Tsirkin wrote: > > > On Tue, Aug 12, 2025 at 03:03:02AM -0700, syzbot wrote: > > > > Hello, > > > > > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue: > > > > WARNING in virtio_transport_send_pkt_info > > > > > > OK so the issue triggers on > > > commit 6693731487a8145a9b039bc983d77edc47693855 > > > Author: Will Deacon <will@kernel.org> > > > Date: Thu Jul 17 10:01:16 2025 +0100 > > > > > > vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers > > > > > > > > > but does not trigger on: > > > > > > commit 8ca76151d2c8219edea82f1925a2a25907ff6a9d > > > Author: Will Deacon <will@kernel.org> > > > Date: Thu Jul 17 10:01:15 2025 +0100 > > > > > > vsock/virtio: Rename virtio_vsock_skb_rx_put() > > > > > > > > > > > > Will, I suspect your patch merely uncovers a latent bug > > > in zero copy handling elsewhere. I'm still looking at this, but I'm not sure zero-copy is the right place to focus on. The bisected patch 6693731487a8 ("vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers") only has two hunks. The first is for the non-zcopy case and the latter is a no-op for zcopy, as skb_len == VIRTIO_VSOCK_SKB_HEADROOM and so we end up with a linear SKB regardless. I'll keep digging... Will ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-15 12:00 ` Will Deacon @ 2025-08-15 15:48 ` Will Deacon 2025-08-16 0:08 ` Hillf Danton 2025-08-16 10:34 ` Michael S. Tsirkin 0 siblings, 2 replies; 14+ messages in thread From: Will Deacon @ 2025-08-15 15:48 UTC (permalink / raw) To: Michael S. Tsirkin Cc: syzbot, davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo On Fri, Aug 15, 2025 at 01:00:59PM +0100, Will Deacon wrote: > On Fri, Aug 15, 2025 at 06:44:47AM -0400, Michael S. Tsirkin wrote: > > On Fri, Aug 15, 2025 at 11:09:24AM +0100, Will Deacon wrote: > > > On Tue, Aug 12, 2025 at 06:15:46AM -0400, Michael S. Tsirkin wrote: > > > > On Tue, Aug 12, 2025 at 03:03:02AM -0700, syzbot wrote: > > > > > Hello, > > > > > > > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue: > > > > > WARNING in virtio_transport_send_pkt_info > > > > > > > > OK so the issue triggers on > > > > commit 6693731487a8145a9b039bc983d77edc47693855 > > > > Author: Will Deacon <will@kernel.org> > > > > Date: Thu Jul 17 10:01:16 2025 +0100 > > > > > > > > vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers > > > > > > > > > > > > but does not trigger on: > > > > > > > > commit 8ca76151d2c8219edea82f1925a2a25907ff6a9d > > > > Author: Will Deacon <will@kernel.org> > > > > Date: Thu Jul 17 10:01:15 2025 +0100 > > > > > > > > vsock/virtio: Rename virtio_vsock_skb_rx_put() > > > > > > > > > > > > > > > > Will, I suspect your patch merely uncovers a latent bug > > > > in zero copy handling elsewhere. > > I'm still looking at this, but I'm not sure zero-copy is the right place > to focus on. > > The bisected patch 6693731487a8 ("vsock/virtio: Allocate nonlinear SKBs > for handling large transmit buffers") only has two hunks. The first is > for the non-zcopy case and the latter is a no-op for zcopy, as > skb_len == VIRTIO_VSOCK_SKB_HEADROOM and so we end up with a linear SKB > regardless. It's looking like this is caused by moving from memcpy_from_msg() to skb_copy_datagram_from_iter(), which is necessary to handle non-linear SKBs correctly. In the case of failure (i.e. faulting on the source and returning -EFAULT), memcpy_from_msg() rewinds the message iterator whereas skb_copy_datagram_from_iter() does not. If we have previously managed to transmit some of the packet, then I think virtio_transport_send_pkt_info() can end up returning a positive "bytes written" error code and the caller will call it again. If we've advanced the message iterator, then this can end up with the reported warning if we run out of input data. As a hack (see below), I tried rewinding the iterator in the error path of skb_copy_datagram_from_iter() but I'm not sure whether other callers would be happy with that. If not, then we could save/restore the iterator state in virtio_transport_fill_skb() if the copy fails. Or we could add a variant of skb_copy_datagram_from_iter(), say skb_copy_datagram_from_iter_full(), which has the rewind behaviour. What do you think? Will --->8 diff --git a/net/core/datagram.c b/net/core/datagram.c index 94cc4705e91d..62e44ab136b7 100644 --- a/net/core/datagram.c +++ b/net/core/datagram.c @@ -551,7 +551,7 @@ int skb_copy_datagram_from_iter(struct sk_buff *skb, int offset, int len) { int start = skb_headlen(skb); - int i, copy = start - offset; + int i, copy = start - offset, start_off = offset; struct sk_buff *frag_iter; /* Copy header. */ @@ -614,6 +614,7 @@ int skb_copy_datagram_from_iter(struct sk_buff *skb, int offset, return 0; fault: + iov_iter_revert(from, offset - start_off); return -EFAULT; } EXPORT_SYMBOL(skb_copy_datagram_from_iter); ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-15 15:48 ` Will Deacon @ 2025-08-16 0:08 ` Hillf Danton 2025-08-16 0:30 ` syzbot 2025-08-16 10:34 ` Michael S. Tsirkin 1 sibling, 1 reply; 14+ messages in thread From: Hillf Danton @ 2025-08-16 0:08 UTC (permalink / raw) To: Will Deacon Cc: Michael S. Tsirkin, syzbot, jasowang, kvm, linux-kernel, netdev, stefanha, syzkaller-bugs On Fri, 15 Aug 2025 16:48:00 +0100 Will Deacon wrote: >On Fri, Aug 15, 2025 at 01:00:59PM +0100, Will Deacon wrote: >> On Fri, Aug 15, 2025 at 06:44:47AM -0400, Michael S. Tsirkin wrote: >> > On Fri, Aug 15, 2025 at 11:09:24AM +0100, Will Deacon wrote: >> > > On Tue, Aug 12, 2025 at 06:15:46AM -0400, Michael S. Tsirkin wrote: >> > > > On Tue, Aug 12, 2025 at 03:03:02AM -0700, syzbot wrote: >> > > > > Hello, >> > > > > >> > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue: >> > > > > WARNING in virtio_transport_send_pkt_info >> > > > >> > > > OK so the issue triggers on >> > > > commit 6693731487a8145a9b039bc983d77edc47693855 >> > > > Author: Will Deacon <will@kernel.org> >> > > > Date: Thu Jul 17 10:01:16 2025 +0100 >> > > > >> > > > vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers >> > > > >> > > > >> > > > but does not trigger on: >> > > > >> > > > commit 8ca76151d2c8219edea82f1925a2a25907ff6a9d >> > > > Author: Will Deacon <will@kernel.org> >> > > > Date: Thu Jul 17 10:01:15 2025 +0100 >> > > > >> > > > vsock/virtio: Rename virtio_vsock_skb_rx_put() >> > > > >> > > > >> > > > >> > > > Will, I suspect your patch merely uncovers a latent bug >> > > > in zero copy handling elsewhere. >> >> I'm still looking at this, but I'm not sure zero-copy is the right place >> to focus on. >> >> The bisected patch 6693731487a8 ("vsock/virtio: Allocate nonlinear SKBs >> for handling large transmit buffers") only has two hunks. The first is >> for the non-zcopy case and the latter is a no-op for zcopy, as >> skb_len == VIRTIO_VSOCK_SKB_HEADROOM and so we end up with a linear SKB >> regardless. > >It's looking like this is caused by moving from memcpy_from_msg() to >skb_copy_datagram_from_iter(), which is necessary to handle non-linear >SKBs correctly. > >In the case of failure (i.e. faulting on the source and returning >-EFAULT), memcpy_from_msg() rewinds the message iterator whereas >skb_copy_datagram_from_iter() does not. If we have previously managed to >transmit some of the packet, then I think >virtio_transport_send_pkt_info() can end up returning a positive "bytes >written" error code and the caller will call it again. If we've advanced >the message iterator, then this can end up with the reported warning if >we run out of input data. > >As a hack (see below), I tried rewinding the iterator in the error path >of skb_copy_datagram_from_iter() but I'm not sure whether other callers >would be happy with that. If not, then we could save/restore the >iterator state in virtio_transport_fill_skb() if the copy fails. Or we >could add a variant of skb_copy_datagram_from_iter(), say >skb_copy_datagram_from_iter_full(), which has the rewind behaviour. > >What do you think? > >Will > >--->8 #syz test diff --git a/net/core/datagram.c b/net/core/datagram.c index 94cc4705e91d..62e44ab136b7 100644 --- a/net/core/datagram.c +++ b/net/core/datagram.c @@ -551,7 +551,7 @@ int skb_copy_datagram_from_iter(struct sk_buff *skb, int offset, int len) { int start = skb_headlen(skb); - int i, copy = start - offset; + int i, copy = start - offset, start_off = offset; struct sk_buff *frag_iter; /* Copy header. */ @@ -614,6 +614,7 @@ int skb_copy_datagram_from_iter(struct sk_buff *skb, int offset, return 0; fault: + iov_iter_revert(from, offset - start_off); return -EFAULT; } EXPORT_SYMBOL(skb_copy_datagram_from_iter); -- ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-16 0:08 ` Hillf Danton @ 2025-08-16 0:30 ` syzbot 0 siblings, 0 replies; 14+ messages in thread From: syzbot @ 2025-08-16 0:30 UTC (permalink / raw) To: hdanton, jasowang, kvm, linux-kernel, mst, netdev, stefanha, syzkaller-bugs, will Hello, syzbot has tested the proposed patch and the reproducer did not trigger any issue: Reported-by: syzbot+b4d960daf7a3c7c2b7b1@syzkaller.appspotmail.com Tested-by: syzbot+b4d960daf7a3c7c2b7b1@syzkaller.appspotmail.com Tested on: commit: dfd4b508 Merge tag 'drm-fixes-2025-08-16' of https://g.. git tree: upstream console output: https://syzkaller.appspot.com/x/log.txt?x=130453a2580000 kernel config: https://syzkaller.appspot.com/x/.config?x=3f81850843b877ed dashboard link: https://syzkaller.appspot.com/bug?extid=b4d960daf7a3c7c2b7b1 compiler: Debian clang version 20.1.7 (++20250616065708+6146a88f6049-1~exp1~20250616065826.132), Debian LLD 20.1.7 patch: https://syzkaller.appspot.com/x/patch.diff?x=125373a2580000 Note: testing is done by a robot and is best-effort only. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-15 15:48 ` Will Deacon 2025-08-16 0:08 ` Hillf Danton @ 2025-08-16 10:34 ` Michael S. Tsirkin 2025-08-18 14:52 ` Will Deacon 1 sibling, 1 reply; 14+ messages in thread From: Michael S. Tsirkin @ 2025-08-16 10:34 UTC (permalink / raw) To: Will Deacon Cc: syzbot, davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo On Fri, Aug 15, 2025 at 04:48:00PM +0100, Will Deacon wrote: > On Fri, Aug 15, 2025 at 01:00:59PM +0100, Will Deacon wrote: > > On Fri, Aug 15, 2025 at 06:44:47AM -0400, Michael S. Tsirkin wrote: > > > On Fri, Aug 15, 2025 at 11:09:24AM +0100, Will Deacon wrote: > > > > On Tue, Aug 12, 2025 at 06:15:46AM -0400, Michael S. Tsirkin wrote: > > > > > On Tue, Aug 12, 2025 at 03:03:02AM -0700, syzbot wrote: > > > > > > Hello, > > > > > > > > > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue: > > > > > > WARNING in virtio_transport_send_pkt_info > > > > > > > > > > OK so the issue triggers on > > > > > commit 6693731487a8145a9b039bc983d77edc47693855 > > > > > Author: Will Deacon <will@kernel.org> > > > > > Date: Thu Jul 17 10:01:16 2025 +0100 > > > > > > > > > > vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers > > > > > > > > > > > > > > > but does not trigger on: > > > > > > > > > > commit 8ca76151d2c8219edea82f1925a2a25907ff6a9d > > > > > Author: Will Deacon <will@kernel.org> > > > > > Date: Thu Jul 17 10:01:15 2025 +0100 > > > > > > > > > > vsock/virtio: Rename virtio_vsock_skb_rx_put() > > > > > > > > > > > > > > > > > > > > Will, I suspect your patch merely uncovers a latent bug > > > > > in zero copy handling elsewhere. > > > > I'm still looking at this, but I'm not sure zero-copy is the right place > > to focus on. > > > > The bisected patch 6693731487a8 ("vsock/virtio: Allocate nonlinear SKBs > > for handling large transmit buffers") only has two hunks. The first is > > for the non-zcopy case and the latter is a no-op for zcopy, as > > skb_len == VIRTIO_VSOCK_SKB_HEADROOM and so we end up with a linear SKB > > regardless. > > It's looking like this is caused by moving from memcpy_from_msg() to > skb_copy_datagram_from_iter(), which is necessary to handle non-linear > SKBs correctly. > > In the case of failure (i.e. faulting on the source and returning > -EFAULT), memcpy_from_msg() rewinds the message iterator whereas > skb_copy_datagram_from_iter() does not. If we have previously managed to > transmit some of the packet, then I think > virtio_transport_send_pkt_info() can end up returning a positive "bytes > written" error code and the caller will call it again. If we've advanced > the message iterator, then this can end up with the reported warning if > we run out of input data. > > As a hack (see below), I tried rewinding the iterator in the error path > of skb_copy_datagram_from_iter() but I'm not sure whether other callers > would be happy with that. If not, then we could save/restore the > iterator state in virtio_transport_fill_skb() if the copy fails. Or we > could add a variant of skb_copy_datagram_from_iter(), say > skb_copy_datagram_from_iter_full(), which has the rewind behaviour. > > What do you think? > > Will It is, at least, self-contained. I don't much like hacking around it in virtio_transport_fill_skb. If your patch isn't acceptable, skb_copy_datagram_from_iter_full seem like a better approach, I think. > --->8 > > diff --git a/net/core/datagram.c b/net/core/datagram.c > index 94cc4705e91d..62e44ab136b7 100644 > --- a/net/core/datagram.c > +++ b/net/core/datagram.c > @@ -551,7 +551,7 @@ int skb_copy_datagram_from_iter(struct sk_buff *skb, int offset, > int len) > { > int start = skb_headlen(skb); > - int i, copy = start - offset; > + int i, copy = start - offset, start_off = offset; > struct sk_buff *frag_iter; > > /* Copy header. */ > @@ -614,6 +614,7 @@ int skb_copy_datagram_from_iter(struct sk_buff *skb, int offset, > return 0; > > fault: > + iov_iter_revert(from, offset - start_off); > return -EFAULT; > } > EXPORT_SYMBOL(skb_copy_datagram_from_iter); ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info 2025-08-16 10:34 ` Michael S. Tsirkin @ 2025-08-18 14:52 ` Will Deacon 0 siblings, 0 replies; 14+ messages in thread From: Will Deacon @ 2025-08-18 14:52 UTC (permalink / raw) To: Michael S. Tsirkin Cc: syzbot, davem, edumazet, eperezma, horms, jasowang, kuba, kvm, linux-kernel, netdev, pabeni, sgarzare, stefanha, syzkaller-bugs, virtualization, xuanzhuo On Sat, Aug 16, 2025 at 06:34:29AM -0400, Michael S. Tsirkin wrote: > On Fri, Aug 15, 2025 at 04:48:00PM +0100, Will Deacon wrote: > > On Fri, Aug 15, 2025 at 01:00:59PM +0100, Will Deacon wrote: > > > On Fri, Aug 15, 2025 at 06:44:47AM -0400, Michael S. Tsirkin wrote: > > > > On Fri, Aug 15, 2025 at 11:09:24AM +0100, Will Deacon wrote: > > > > > On Tue, Aug 12, 2025 at 06:15:46AM -0400, Michael S. Tsirkin wrote: > > > > > > On Tue, Aug 12, 2025 at 03:03:02AM -0700, syzbot wrote: > > > > > > > Hello, > > > > > > > > > > > > > > syzbot has tested the proposed patch but the reproducer is still triggering an issue: > > > > > > > WARNING in virtio_transport_send_pkt_info > > > > > > > > > > > > OK so the issue triggers on > > > > > > commit 6693731487a8145a9b039bc983d77edc47693855 > > > > > > Author: Will Deacon <will@kernel.org> > > > > > > Date: Thu Jul 17 10:01:16 2025 +0100 > > > > > > > > > > > > vsock/virtio: Allocate nonlinear SKBs for handling large transmit buffers > > > > > > > > > > > > > > > > > > but does not trigger on: > > > > > > > > > > > > commit 8ca76151d2c8219edea82f1925a2a25907ff6a9d > > > > > > Author: Will Deacon <will@kernel.org> > > > > > > Date: Thu Jul 17 10:01:15 2025 +0100 > > > > > > > > > > > > vsock/virtio: Rename virtio_vsock_skb_rx_put() > > > > > > > > > > > > > > > > > > > > > > > > Will, I suspect your patch merely uncovers a latent bug > > > > > > in zero copy handling elsewhere. > > > > > > I'm still looking at this, but I'm not sure zero-copy is the right place > > > to focus on. > > > > > > The bisected patch 6693731487a8 ("vsock/virtio: Allocate nonlinear SKBs > > > for handling large transmit buffers") only has two hunks. The first is > > > for the non-zcopy case and the latter is a no-op for zcopy, as > > > skb_len == VIRTIO_VSOCK_SKB_HEADROOM and so we end up with a linear SKB > > > regardless. > > > > It's looking like this is caused by moving from memcpy_from_msg() to > > skb_copy_datagram_from_iter(), which is necessary to handle non-linear > > SKBs correctly. > > > > In the case of failure (i.e. faulting on the source and returning > > -EFAULT), memcpy_from_msg() rewinds the message iterator whereas > > skb_copy_datagram_from_iter() does not. If we have previously managed to > > transmit some of the packet, then I think > > virtio_transport_send_pkt_info() can end up returning a positive "bytes > > written" error code and the caller will call it again. If we've advanced > > the message iterator, then this can end up with the reported warning if > > we run out of input data. > > > > As a hack (see below), I tried rewinding the iterator in the error path > > of skb_copy_datagram_from_iter() but I'm not sure whether other callers > > would be happy with that. If not, then we could save/restore the > > iterator state in virtio_transport_fill_skb() if the copy fails. Or we > > could add a variant of skb_copy_datagram_from_iter(), say > > skb_copy_datagram_from_iter_full(), which has the rewind behaviour. > > > > What do you think? > > > > Will > > It is, at least, self-contained. I don't much like hacking around > it in virtio_transport_fill_skb. If your patch isn't acceptable, > skb_copy_datagram_from_iter_full seem like a better approach, I think. Thanks. I'll send something out shortly with you on cc. Will ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2025-08-18 14:52 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-08-11 18:59 [syzbot] [kvm?] [net?] [virt?] WARNING in virtio_transport_send_pkt_info syzbot 2025-08-12 9:26 ` Michael S. Tsirkin 2025-08-12 9:48 ` syzbot 2025-08-12 9:27 ` Michael S. Tsirkin 2025-08-12 10:03 ` syzbot 2025-08-12 10:15 ` Michael S. Tsirkin 2025-08-15 10:09 ` Will Deacon 2025-08-15 10:44 ` Michael S. Tsirkin 2025-08-15 12:00 ` Will Deacon 2025-08-15 15:48 ` Will Deacon 2025-08-16 0:08 ` Hillf Danton 2025-08-16 0:30 ` syzbot 2025-08-16 10:34 ` Michael S. Tsirkin 2025-08-18 14:52 ` Will Deacon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).