syzbot


KCSAN: data-race in ___neigh_create / ___neigh_create

Status: auto-closed as invalid on 2020/03/27 18:19
Subsystems: net
[Documentation on labels]
First crash: 1561d, last: 1561d

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

read to 0xffffffff85e18308 of 8 bytes by interrupt on cpu 0:
 neigh_alloc net/core/neighbour.c:391 [inline]
 ___neigh_create+0x117/0x1230 net/core/neighbour.c:580
 __neigh_create+0x38/0x50 net/core/neighbour.c:674
 ip6_finish_output2+0x6cb/0xf60 net/ipv6/ip6_output.c:113
 __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]
 ndisc_send_skb+0x459/0x5f0 net/ipv6/ndisc.c:505
 ndisc_send_rs+0xb3/0x3d0 net/ipv6/ndisc.c:699
 addrconf_rs_timer+0x1ee/0x420 net/ipv6/addrconf.c:3879
 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
 native_safe_halt+0xe/0x10 arch/x86/include/asm/irqflags.h:60
 arch_cpu_idle+0xa/0x10 arch/x86/kernel/process.c:690
 default_idle_call+0x1e/0x40 kernel/sched/idle.c:94
 cpuidle_idle_call kernel/sched/idle.c:154 [inline]
 do_idle+0x1c2/0x290 kernel/sched/idle.c:269
 cpu_startup_entry+0x1b/0x20 kernel/sched/idle.c:361
 rest_init+0xec/0xf6 init/main.c:452
 arch_call_rest_init+0x17/0x37
 start_kernel+0x838/0x85e init/main.c:786
 x86_64_start_reservations+0x29/0x2b arch/x86/kernel/head64.c:490
 x86_64_start_kernel+0x72/0x76 arch/x86/kernel/head64.c:471
 secondary_startup_64+0xa4/0xb0 arch/x86/kernel/head_64.S:242

write to 0xffffffff85e18308 of 8 bytes by interrupt on cpu 1:
 neigh_forced_gc net/core/neighbour.c:252 [inline]
 neigh_alloc net/core/neighbour.c:392 [inline]
 ___neigh_create+0x994/0x1230 net/core/neighbour.c:580
 __neigh_create+0x38/0x50 net/core/neighbour.c:674
 ip6_finish_output2+0x6cb/0xf60 net/ipv6/ip6_output.c:113
 __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]
 igmp6_send+0x639/0x6f0 net/ipv6/mcast.c:2059
 igmp6_timer_handler+0x72/0xf0 net/ipv6/mcast.c:2500
 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
 do_softirq_own_stack+0x2a/0x40 arch/x86/entry/entry_64.S:1082
 do_softirq.part.0+0x6b/0x80 kernel/softirq.c:337
 do_softirq kernel/softirq.c:329 [inline]
 __local_bh_enable_ip+0x76/0x80 kernel/softirq.c:189
 __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:176 [inline]
 _raw_spin_unlock_bh+0x3f/0x50 kernel/locking/spinlock.c:207
 spin_unlock_bh include/linux/spinlock.h:383 [inline]
 __fib6_clean_all+0xc5/0x150 net/ipv6/ip6_fib.c:2170
 fib6_clean_all+0x34/0x50 net/ipv6/ip6_fib.c:2179
 rt6_sync_down_dev+0xd0/0xe0 net/ipv6/route.c:4726
 addrconf_notify+0xe25/0x1550 net/ipv6/addrconf.c:3552
 notifier_call_chain+0xd7/0x160 kernel/notifier.c:83
 __raw_notifier_call_chain kernel/notifier.c:361 [inline]
 raw_notifier_call_chain+0x37/0x50 kernel/notifier.c:368
 call_netdevice_notifiers_info net/core/dev.c:1893 [inline]
 call_netdevice_notifiers_info+0x9a/0x120 net/core/dev.c:1878
 netdev_state_change net/core/dev.c:1378 [inline]
 netdev_state_change+0xb2/0xd0 net/core/dev.c:1371
 do_setlink+0xdf2/0x1ee0 net/core/rtnetlink.c:2809
 rtnl_group_changelink net/core/rtnetlink.c:3089 [inline]
 __rtnl_newlink+0xa86/0x1090 net/core/rtnetlink.c:3243
 rtnl_newlink+0x63/0x90 net/core/rtnetlink.c:3363
 rtnetlink_rcv_msg+0x1d3/0x500 net/core/rtnetlink.c:5424
 netlink_rcv_skb+0xb0/0x260 net/netlink/af_netlink.c:2477
 rtnetlink_rcv+0x26/0x30 net/core/rtnetlink.c:5442
 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline]
 netlink_unicast+0x3a6/0x4d0 net/netlink/af_netlink.c:1328
 netlink_sendmsg+0x4d3/0x8b0 net/netlink/af_netlink.c:1917
 sock_sendmsg_nosec net/socket.c:639 [inline]
 sock_sendmsg+0x9f/0xc0 net/socket.c:659
 ____sys_sendmsg+0x49d/0x4d0 net/socket.c:2330
 ___sys_sendmsg+0xb5/0x100 net/socket.c:2384
 __sys_sendmsg+0xa0/0x160 net/socket.c:2417
 __do_sys_sendmsg net/socket.c:2426 [inline]
 __se_sys_sendmsg net/socket.c:2424 [inline]
 __x64_sys_sendmsg+0x51/0x70 net/socket.c:2424
 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: 1 PID: 14713 Comm: syz-executor.0 Not tainted 5.5.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/01/17 18:13 https://github.com/google/ktsan.git kcsan 245a43005292 3de7aabb .config console log report ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.