syzbot


KCSAN: data-race in virtnet_poll / virtqueue_add

Status: auto-closed as invalid on 2020/12/02 17:30
Subsystems: virt
[Documentation on labels]
First crash: 1269d, last: 1269d

Sample crash report:
==================================================================
BUG: KCSAN: data-race in virtnet_poll / virtqueue_add

read-write to 0xffff888141f7fcec of 4 bytes by task 8445 on cpu 0:
 virtqueue_add_split drivers/virtio/virtio_ring.c:528 [inline]
 virtqueue_add+0x15dd/0x1dd0 drivers/virtio/virtio_ring.c:1706
 virtqueue_add_outbuf+0x4f/0x80 drivers/virtio/virtio_ring.c:1763
 xmit_skb drivers/net/virtio_net.c:1576 [inline]
 start_xmit+0x6f9/0xa80 drivers/net/virtio_net.c:1599
 __netdev_start_xmit include/linux/netdevice.h:4718 [inline]
 netdev_start_xmit include/linux/netdevice.h:4732 [inline]
 xmit_one+0xf9/0x2e0 net/core/dev.c:3564
 dev_hard_start_xmit+0x72/0x120 net/core/dev.c:3580
 sch_direct_xmit+0x170/0x730 net/sched/sch_generic.c:313
 qdisc_restart net/sched/sch_generic.c:376 [inline]
 __qdisc_run+0x119/0x180 net/sched/sch_generic.c:384
 qdisc_run include/net/pkt_sched.h:131 [inline]
 __dev_xmit_skb net/core/dev.c:3755 [inline]
 __dev_queue_xmit+0xa62/0x1510 net/core/dev.c:4108
 dev_queue_xmit+0x13/0x20 net/core/dev.c:4173
 neigh_hh_output include/net/neighbour.h:498 [inline]
 neigh_output include/net/neighbour.h:507 [inline]
 ip_finish_output2+0xb09/0xba0 net/ipv4/ip_output.c:230
 __ip_finish_output+0x3d8/0x430 net/ipv4/ip_output.c:308
 ip_finish_output+0x39/0x160 net/ipv4/ip_output.c:318
 NF_HOOK_COND include/linux/netfilter.h:290 [inline]
 ip_output+0xf6/0x1a0 net/ipv4/ip_output.c:432
 dst_output include/net/dst.h:443 [inline]
 ip_local_out net/ipv4/ip_output.c:126 [inline]
 __ip_queue_xmit+0x9ca/0x9f0 net/ipv4/ip_output.c:532
 ip_queue_xmit+0x34/0x40 net/ipv4/ip_output.c:546
 __tcp_transmit_skb+0x1250/0x1860 net/ipv4/tcp_output.c:1404
 tcp_transmit_skb net/ipv4/tcp_output.c:1422 [inline]
 tcp_write_xmit+0x10bd/0x3c60 net/ipv4/tcp_output.c:2684
 __tcp_push_pending_frames+0x68/0x1c0 net/ipv4/tcp_output.c:2862
 tcp_push+0x2cd/0x2e0 net/ipv4/tcp.c:735
 tcp_sendmsg_locked+0x1c2d/0x2130 net/ipv4/tcp.c:1412
 tcp_sendmsg+0x2c/0x40 net/ipv4/tcp.c:1442
 inet_sendmsg+0x5f/0x80 net/ipv4/af_inet.c:817
 sock_sendmsg_nosec net/socket.c:651 [inline]
 sock_sendmsg net/socket.c:671 [inline]
 sock_write_iter+0x1a4/0x200 net/socket.c:998
 call_write_iter include/linux/fs.h:1887 [inline]
 new_sync_write fs/read_write.c:518 [inline]
 vfs_write+0x617/0x690 fs/read_write.c:605
 ksys_write+0xce/0x180 fs/read_write.c:658
 __do_sys_write fs/read_write.c:670 [inline]
 __se_sys_write fs/read_write.c:667 [inline]
 __x64_sys_write+0x3e/0x50 fs/read_write.c:667
 do_syscall_64+0x39/0x80 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

read to 0xffff888141f7fcec of 4 bytes by interrupt on cpu 1:
 virtnet_poll_cleantx drivers/net/virtio_net.c:1441 [inline]
 virtnet_poll+0x1e2/0x730 drivers/net/virtio_net.c:1454
 napi_poll+0x178/0x4c0 net/core/dev.c:6763
 net_rx_action+0x17a/0x480 net/core/dev.c:6833
 __do_softirq+0x12c/0x2b1 kernel/softirq.c:298
 asm_call_irq_on_stack+0xf/0x20
 __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
 run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
 do_softirq_own_stack+0x32/0x40 arch/x86/kernel/irq_64.c:77
 invoke_softirq kernel/softirq.c:393 [inline]
 __irq_exit_rcu+0xb2/0xc0 kernel/softirq.c:423
 common_interrupt+0xb5/0x130 arch/x86/kernel/irq.c:239
 asm_common_interrupt+0x1e/0x40 arch/x86/include/asm/idtentry.h:622
 get_ctx kernel/kcsan/core.c:198 [inline]
 check_access kernel/kcsan/core.c:629 [inline]
 __tsan_read8+0x117/0x180 kernel/kcsan/core.c:842
 tomoyo_check_path_acl+0x4f/0xe0 security/tomoyo/file.c:260
 tomoyo_check_acl+0xcc/0x200 security/tomoyo/domain.c:175
 tomoyo_path_permission security/tomoyo/file.c:586 [inline]
 tomoyo_path_perm+0x22f/0x330 security/tomoyo/file.c:838
 tomoyo_inode_getattr+0x18/0x20 security/tomoyo/tomoyo.c:123
 security_inode_getattr+0x7f/0xd0 security/security.c:1279
 vfs_getattr fs/stat.c:121 [inline]
 vfs_statx+0xf8/0x270 fs/stat.c:189
 vfs_fstatat fs/stat.c:207 [inline]
 vfs_lstat include/linux/fs.h:3109 [inline]
 __do_sys_newlstat fs/stat.c:362 [inline]
 __se_sys_newlstat+0x46/0x250 fs/stat.c:356
 __x64_sys_newlstat+0x2d/0x40 fs/stat.c:356
 do_syscall_64+0x39/0x80 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 PID: 4891 Comm: systemd-udevd Not tainted 5.10.0-rc1-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2020/10/28 17:29 upstream ed8780e3f2ec f24824d3 .config console log report info ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.