syzbot


KCSAN: data-race in virtqueue_disable_cb / virtqueue_enable_cb_delayed (3)

Status: auto-closed as invalid on 2020/09/20 20:51
Subsystems: virt
[Documentation on labels]
First crash: 1626d, last: 1626d
Similar bugs (7)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in virtqueue_disable_cb / virtqueue_enable_cb_delayed (5) virt 3 969d 1019d 0/28 auto-closed as invalid on 2022/07/09 17:31
upstream KCSAN: data-race in virtqueue_disable_cb / virtqueue_enable_cb_delayed (2) virt 3 1799d 1871d 0/28 auto-closed as invalid on 2020/05/05 19:05
upstream KCSAN: data-race in virtqueue_disable_cb / virtqueue_enable_cb_delayed (8) virt 2 588d 607d 0/28 auto-obsoleted due to no activity on 2023/07/25 21:20
upstream KCSAN: data-race in virtqueue_disable_cb / virtqueue_enable_cb_delayed (6) virt 1 810d 810d 0/28 auto-obsoleted due to no activity on 2022/12/15 06:15
upstream KCSAN: data-race in virtqueue_disable_cb / virtqueue_enable_cb_delayed virt 2 1911d 1923d 0/28 closed as invalid on 2019/11/19 13:54
upstream KCSAN: data-race in virtqueue_disable_cb / virtqueue_enable_cb_delayed (7) virt 1 665d 665d 0/28 auto-obsoleted due to no activity on 2023/05/09 11:44
upstream KCSAN: data-race in virtqueue_disable_cb / virtqueue_enable_cb_delayed (4) virt 1 1533d 1513d 0/28 auto-closed as invalid on 2020/12/23 03:08

Sample crash report:
==================================================================
BUG: KCSAN: data-race in virtqueue_disable_cb / virtqueue_enable_cb_delayed

write to 0xffff88821a162a30 of 2 bytes by interrupt on cpu 1:
 virtqueue_enable_cb_delayed_split drivers/virtio/virtio_ring.c:795 [inline]
 virtqueue_enable_cb_delayed+0x253/0x390 drivers/virtio/virtio_ring.c:2009
 start_xmit+0xe6/0xad0 drivers/net/virtio_net.c:1588
 __netdev_start_xmit include/linux/netdevice.h:4634 [inline]
 netdev_start_xmit include/linux/netdevice.h:4648 [inline]
 xmit_one+0xc0/0x310 net/core/dev.c:3561
 dev_hard_start_xmit+0x72/0x120 net/core/dev.c:3577
 sch_direct_xmit+0x16a/0x760 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:134 [inline]
 __dev_xmit_skb net/core/dev.c:3752 [inline]
 __dev_queue_xmit+0xa80/0x15a0 net/core/dev.c:4105
 dev_queue_xmit+0x13/0x20 net/core/dev.c:4169
 neigh_hh_output include/net/neighbour.h:498 [inline]
 neigh_output include/net/neighbour.h:507 [inline]
 ip_finish_output2+0x707/0xb60 net/ipv4/ip_output.c:228
 __ip_finish_output+0x395/0x3e0 net/ipv4/ip_output.c:306
 ip_finish_output+0x39/0x160 net/ipv4/ip_output.c:316
 NF_HOOK_COND include/linux/netfilter.h:290 [inline]
 ip_output+0xf6/0x1a0 net/ipv4/ip_output.c:430
 dst_output include/net/dst.h:443 [inline]
 ip_local_out net/ipv4/ip_output.c:125 [inline]
 __ip_queue_xmit+0x9b3/0x9e0 net/ipv4/ip_output.c:530
 ip_queue_xmit+0x34/0x40 net/ipv4/ip_output.c:544
 __tcp_transmit_skb+0x1320/0x1810 net/ipv4/tcp_output.c:1246
 __tcp_send_ack+0x229/0x2d0 net/ipv4/tcp_output.c:3800
 tcp_send_ack+0x23/0x30 net/ipv4/tcp_output.c:3806
 __tcp_ack_snd_check+0x2f0/0x530 net/ipv4/tcp_input.c:5323
 tcp_rcv_established+0x12e2/0x1520 net/ipv4/tcp_input.c:5753
 tcp_v4_do_rcv+0x25e/0x480 net/ipv4/tcp_ipv4.c:1642
 tcp_v4_rcv+0x219b/0x2420 net/ipv4/tcp_ipv4.c:2024
 ip_protocol_deliver_rcu+0x1f9/0x400 net/ipv4/ip_input.c:204
 ip_local_deliver_finish net/ipv4/ip_input.c:231 [inline]
 NF_HOOK include/linux/netfilter.h:301 [inline]
 ip_local_deliver+0x1d6/0x2a0 net/ipv4/ip_input.c:252
 dst_input include/net/dst.h:449 [inline]
 ip_sublist_rcv_finish net/ipv4/ip_input.c:550 [inline]
 ip_list_rcv_finish net/ipv4/ip_input.c:600 [inline]
 ip_sublist_rcv+0x4d4/0x5a0 net/ipv4/ip_input.c:608
 ip_list_rcv+0x262/0x290 net/ipv4/ip_input.c:643
 __netif_receive_skb_list_ptype net/core/dev.c:5329 [inline]
 __netif_receive_skb_list_core+0x34b/0x450 net/core/dev.c:5377
 __netif_receive_skb_list+0x298/0x310 net/core/dev.c:5429
 netif_receive_skb_list_internal+0xda/0x330 net/core/dev.c:5534
 gro_normal_list net/core/dev.c:5645 [inline]
 gro_normal_one net/core/dev.c:5657 [inline]
 napi_skb_finish net/core/dev.c:5985 [inline]
 napi_gro_receive+0x370/0x5f0 net/core/dev.c:6017
 receive_buf+0x7a4/0xd50 drivers/net/virtio_net.c:1082
 virtnet_receive drivers/net/virtio_net.c:1346 [inline]
 virtnet_poll+0x2fa/0x780 drivers/net/virtio_net.c:1451
 napi_poll+0x178/0x4f0 net/core/dev.c:6687
 net_rx_action+0x1ba/0x530 net/core/dev.c:6757
 __do_softirq+0x198/0x360 kernel/softirq.c:298
 asm_call_on_stack+0xf/0x20 arch/x86/entry/entry_64.S:706
 __run_on_irqstack arch/x86/include/asm/irq_stack.h:22 [inline]
 run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:48 [inline]
 do_softirq_own_stack+0x5d/0x80 arch/x86/kernel/irq_64.c:77
 invoke_softirq kernel/softirq.c:393 [inline]
 __irq_exit_rcu+0x115/0x120 kernel/softirq.c:423
 common_interrupt+0x14e/0x1e0 arch/x86/kernel/irq.c:239
 asm_common_interrupt+0x1e/0x40 arch/x86/include/asm/idtentry.h:572
 native_safe_halt+0xe/0x10 arch/x86/include/asm/irqflags.h:60
 arch_safe_halt arch/x86/include/asm/paravirt.h:150 [inline]
 acpi_safe_halt drivers/acpi/processor_idle.c:111 [inline]
 acpi_idle_do_entry drivers/acpi/processor_idle.c:524 [inline]
 acpi_idle_enter+0x30d/0x680 drivers/acpi/processor_idle.c:650
 cpuidle_enter_state+0x245/0x5d0 drivers/cpuidle/cpuidle.c:235
 cpuidle_enter+0x3c/0x60 drivers/cpuidle/cpuidle.c:346
 call_cpuidle kernel/sched/idle.c:126 [inline]
 cpuidle_idle_call kernel/sched/idle.c:214 [inline]
 do_idle+0x229/0x310 kernel/sched/idle.c:276
 cpu_startup_entry+0x15/0x20 kernel/sched/idle.c:372
 secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243

read to 0xffff88821a162a30 of 2 bytes by interrupt on cpu 0:
 virtqueue_disable_cb_split drivers/virtio/virtio_ring.c:740 [inline]
 virtqueue_disable_cb+0x66/0x120 drivers/virtio/virtio_ring.c:1925
 virtqueue_napi_schedule drivers/net/virtio_net.c:318 [inline]
 skb_xmit_done+0xa5/0x110 drivers/net/virtio_net.c:346
 vring_interrupt+0x11e/0x140 drivers/virtio/virtio_ring.c:2049
 __handle_irq_event_percpu+0x16e/0x4f0 kernel/irq/handle.c:156
 handle_irq_event_percpu kernel/irq/handle.c:196 [inline]
 handle_irq_event+0x94/0x140 kernel/irq/handle.c:213
 handle_edge_irq+0x18e/0x5f0 kernel/irq/chip.c:819
 asm_call_on_stack+0xf/0x20 arch/x86/entry/entry_64.S:706
 __run_on_irqstack arch/x86/include/asm/irq_stack.h:22 [inline]
 run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:48 [inline]
 handle_irq arch/x86/kernel/irq.c:230 [inline]
 __common_interrupt arch/x86/kernel/irq.c:249 [inline]
 common_interrupt+0xf6/0x1e0 arch/x86/kernel/irq.c:239
 asm_common_interrupt+0x1e/0x40 arch/x86/include/asm/idtentry.h:572
 native_safe_halt+0xe/0x10 arch/x86/include/asm/irqflags.h:60
 arch_safe_halt arch/x86/include/asm/paravirt.h:150 [inline]
 acpi_safe_halt drivers/acpi/processor_idle.c:111 [inline]
 acpi_idle_do_entry drivers/acpi/processor_idle.c:524 [inline]
 acpi_idle_enter+0x30d/0x680 drivers/acpi/processor_idle.c:650
 cpuidle_enter_state+0x245/0x5d0 drivers/cpuidle/cpuidle.c:235
 cpuidle_enter+0x3c/0x60 drivers/cpuidle/cpuidle.c:346
 call_cpuidle kernel/sched/idle.c:126 [inline]
 cpuidle_idle_call kernel/sched/idle.c:214 [inline]
 do_idle+0x229/0x310 kernel/sched/idle.c:276
 cpu_startup_entry+0x15/0x20 kernel/sched/idle.c:372
 rest_init+0xd8/0xe0 init/main.c:708
 arch_call_rest_init+0xa/0xb
 start_kernel+0x608/0x6d0 init/main.c:1048
 secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:243

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.8.0-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/08/16 20:49 upstream 2cc3c4b3c2e9 5ce13532 .config console log report ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.