syzbot


KCSAN: data-race in hsr_register_frame_out / hsr_register_frame_out

Status: auto-closed as invalid on 2020/03/02 12:52
Subsystems: net
[Documentation on labels]
First crash: 1595d, last: 1557d
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in hsr_register_frame_out / hsr_register_frame_out (3) net 2 1079d 1100d 0/26 auto-closed as invalid on 2021/05/19 06:43
upstream KCSAN: data-race in hsr_register_frame_out / hsr_register_frame_out (4) net 3 777d 818d 0/26 auto-closed as invalid on 2022/03/17 06:42
upstream KCSAN: data-race in hsr_register_frame_out / hsr_register_frame_out (2) net 1 1300d 1300d 0/26 auto-closed as invalid on 2020/10/10 06:10

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

read to 0xffff8880b54becd2 of 2 bytes by interrupt on cpu 1:
 hsr_register_frame_out+0x41/0xc0 net/hsr/hsr_framereg.c:337
 hsr_forward_do net/hsr/hsr_forward.c:261 [inline]
 hsr_forward_skb+0x50d/0x1160 net/hsr/hsr_forward.c:361
 hsr_dev_xmit+0x62/0xa0 net/hsr/hsr_device.c:232
 __netdev_start_xmit include/linux/netdevice.h:4447 [inline]
 netdev_start_xmit include/linux/netdevice.h:4461 [inline]
 xmit_one net/core/dev.c:3420 [inline]
 dev_hard_start_xmit+0xef/0x430 net/core/dev.c:3436
 __dev_queue_xmit+0x14e9/0x1ba0 net/core/dev.c:4013
 dev_queue_xmit+0x21/0x30 net/core/dev.c:4046
 neigh_connected_output+0x28a/0x2e0 net/core/neighbour.c:1519
 neigh_output include/net/neighbour.h:511 [inline]
 ip6_finish_output2+0x717/0xf60 net/ipv6/ip6_output.c:116
 __ip6_finish_output net/ipv6/ip6_output.c:142 [inline]
 __ip6_finish_output+0x2d7/0x330 net/ipv6/ip6_output.c:127
 ip6_finish_output+0x41/0x160 net/ipv6/ip6_output.c:152
 NF_HOOK_COND include/linux/netfilter.h:296 [inline]
 ip6_output+0x108/0x290 net/ipv6/ip6_output.c:175
 dst_output include/net/dst.h:436 [inline]
 NF_HOOK include/linux/netfilter.h:307 [inline]
 NF_HOOK include/linux/netfilter.h:301 [inline]
 mld_sendpack+0x53c/0x5b0 net/ipv6/mcast.c:1682
 mld_send_cr net/ipv6/mcast.c:1978 [inline]
 mld_ifc_timer_expire+0x31e/0x630 net/ipv6/mcast.c:2477
 call_timer_fn+0x5f/0x2f0 kernel/time/timer.c:1404
 expire_timers kernel/time/timer.c:1449 [inline]
 __run_timers kernel/time/timer.c:1773 [inline]
 __run_timers kernel/time/timer.c:1740 [inline]
 run_timer_softirq+0xc0c/0xcd0 kernel/time/timer.c:1786
 __do_softirq+0x115/0x33f kernel/softirq.c:292
 invoke_softirq kernel/softirq.c:373 [inline]
 irq_exit+0xbb/0xe0 kernel/softirq.c:413
 exiting_irq arch/x86/include/asm/apic.h:536 [inline]
 smp_apic_timer_interrupt+0xe6/0x280 arch/x86/kernel/apic/apic.c:1137
 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:829
 arch_local_irq_enable arch/x86/include/asm/paravirt.h:762 [inline]
 __raw_spin_unlock_irq include/linux/spinlock_api_smp.h:168 [inline]
 _raw_spin_unlock_irq+0x4e/0x80 kernel/locking/spinlock.c:199
 finish_lock_switch kernel/sched/core.c:3124 [inline]
 finish_task_switch+0x7b/0x260 kernel/sched/core.c:3224
 context_switch kernel/sched/core.c:3388 [inline]
 __schedule+0x30e/0x690 kernel/sched/core.c:4081
 preempt_schedule_common+0x37/0x90 kernel/sched/core.c:4236
 preempt_schedule+0x30/0x40 kernel/sched/core.c:4261
 ___preempt_schedule+0x16/0x18 arch/x86/entry/thunk_64.S:50
 __raw_spin_unlock include/linux/spinlock_api_smp.h:152 [inline]
 _raw_spin_unlock+0x55/0x60 kernel/locking/spinlock.c:183
 spin_unlock include/linux/spinlock.h:378 [inline]
 zap_pte_range mm/memory.c:1136 [inline]
 zap_pmd_range mm/memory.c:1184 [inline]
 zap_pud_range mm/memory.c:1213 [inline]
 zap_p4d_range mm/memory.c:1234 [inline]
 unmap_page_range+0xf06/0x1940 mm/memory.c:1255
 unmap_single_vma+0x144/0x200 mm/memory.c:1300
 unmap_vmas+0xda/0x1a0 mm/memory.c:1332
 exit_mmap+0x13e/0x300 mm/mmap.c:3140
 __mmput kernel/fork.c:1082 [inline]
 mmput+0xea/0x280 kernel/fork.c:1103
 exit_mm kernel/exit.c:485 [inline]
 do_exit+0x4ac/0x18c0 kernel/exit.c:784
 do_group_exit+0xb4/0x1c0 kernel/exit.c:895
 __do_sys_exit_group kernel/exit.c:906 [inline]
 __se_sys_exit_group kernel/exit.c:904 [inline]
 __x64_sys_exit_group+0x2e/0x30 kernel/exit.c:904
 do_syscall_64+0xcc/0x3a0 arch/x86/entry/common.c:294
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

write to 0xffff8880b54becd2 of 2 bytes by interrupt on cpu 0:
 hsr_register_frame_out+0x8d/0xc0 net/hsr/hsr_framereg.c:340
 hsr_forward_do net/hsr/hsr_forward.c:261 [inline]
 hsr_forward_skb+0x50d/0x1160 net/hsr/hsr_forward.c:361
 send_hsr_supervision_frame+0x4d9/0x730 net/hsr/hsr_device.c:311
 hsr_announce+0x9a/0x170 net/hsr/hsr_device.c:339
 call_timer_fn+0x5f/0x2f0 kernel/time/timer.c:1404
 expire_timers kernel/time/timer.c:1449 [inline]
 __run_timers kernel/time/timer.c:1773 [inline]
 __run_timers kernel/time/timer.c:1740 [inline]
 run_timer_softirq+0xc0c/0xcd0 kernel/time/timer.c:1786
 __do_softirq+0x115/0x33f kernel/softirq.c:292
 invoke_softirq kernel/softirq.c:373 [inline]
 irq_exit+0xbb/0xe0 kernel/softirq.c:413
 exiting_irq arch/x86/include/asm/apic.h:536 [inline]
 smp_apic_timer_interrupt+0xe6/0x280 arch/x86/kernel/apic/apic.c:1137
 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:829
 arch_local_irq_enable arch/x86/include/asm/paravirt.h:762 [inline]
 preempt_schedule_irq+0x4d/0x90 kernel/sched/core.c:4337
 restore_regs_and_return_to_kernel+0x0/0x25
 check_kcov_mode kernel/kcov.c:153 [inline]
 __sanitizer_cov_trace_pc+0x20/0x50 kernel/kcov.c:187
 arch_local_irq_disable arch/x86/include/asm/paravirt.h:757 [inline]
 lookup_bh_lru fs/buffer.c:1301 [inline]
 __find_get_block+0x9d/0x760 fs/buffer.c:1332
 sb_find_get_block include/linux/buffer_head.h:338 [inline]
 recently_deleted fs/ext4/ialloc.c:677 [inline]
 find_inode_bit.isra.0+0x161/0x300 fs/ext4/ialloc.c:717
 __ext4_new_inode+0xd45/0x2f10 fs/ext4/ialloc.c:909
 ext4_create+0x24e/0x300 fs/ext4/namei.c:2598
 lookup_open fs/namei.c:3241 [inline]
 do_last fs/namei.c:3331 [inline]
 path_openat+0x2b10/0x3580 fs/namei.c:3537
 do_filp_open+0x11e/0x1b0 fs/namei.c:3567
 do_sys_open+0x3b3/0x4f0 fs/open.c:1097
 __do_sys_openat fs/open.c:1124 [inline]
 __se_sys_openat fs/open.c:1118 [inline]
 __x64_sys_openat+0x62/0x80 fs/open.c:1118
 do_syscall_64+0xcc/0x3a0 arch/x86/entry/common.c:294
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 4980 Comm: syz-executor.4 Not tainted 5.5.0-rc1-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
==================================================================

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/12/23 12:48 https://github.com/google/ktsan.git kcsan 245a43005292 be5c2c81 .config console log report ci2-upstream-kcsan-gce
2019/11/14 18:20 https://github.com/google/ktsan.git kcsan 7f2955e0d056 048f2d49 .config console log report ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.