KCSAN: data-race in decode_data.part.0 / sixpack_receive_buf

From: syzbot
Date: Tue Mar 24 2020 - 04:08:14 EST


Hello,

syzbot found the following crash on:

HEAD commit: 245a4300 Merge branch 'rcu/kcsan' into tip/locking/kcsan
git tree: https://github.com/google/ktsan.git kcsan
console output: https://syzkaller.appspot.com/x/log.txt?x=16543101e00000
kernel config: https://syzkaller.appspot.com/x/.config?x=a4b9db179318d21f
dashboard link: https://syzkaller.appspot.com/bug?extid=673c2668e8c71c021637
compiler: gcc (GCC) 9.0.0 20181231 (experimental)

Unfortunately, I don't have any reproducer for this crash yet.

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+673c2668e8c71c021637@xxxxxxxxxxxxxxxxxxxxxxxxx

==================================================================
BUG: KCSAN: data-race in decode_data.part.0 / sixpack_receive_buf

read to 0xffff8880a68aa8f6 of 1 bytes by task 8699 on cpu 1:
decode_data.part.0+0x8d/0x120 drivers/net/hamradio/6pack.c:846
decode_data drivers/net/hamradio/6pack.c:965 [inline]
sixpack_decode drivers/net/hamradio/6pack.c:968 [inline]
sixpack_receive_buf+0x901/0xb90 drivers/net/hamradio/6pack.c:458
tiocsti drivers/tty/tty_io.c:2200 [inline]
tty_ioctl+0xb75/0xe10 drivers/tty/tty_io.c:2576
vfs_ioctl fs/ioctl.c:47 [inline]
file_ioctl fs/ioctl.c:545 [inline]
do_vfs_ioctl+0x84f/0xcf0 fs/ioctl.c:732
ksys_ioctl+0xbd/0xe0 fs/ioctl.c:749
__do_sys_ioctl fs/ioctl.c:756 [inline]
__se_sys_ioctl fs/ioctl.c:754 [inline]
__x64_sys_ioctl+0x4c/0x60 fs/ioctl.c:754
do_syscall_64+0xcc/0x3a0 arch/x86/entry/common.c:294
entry_SYSCALL_64_after_hwframe+0x44/0xa9

write to 0xffff8880a68aa8f6 of 1 bytes by task 8154 on cpu 0:
decode_data drivers/net/hamradio/6pack.c:837 [inline]
sixpack_decode drivers/net/hamradio/6pack.c:968 [inline]
sixpack_receive_buf+0x40e/0xb90 drivers/net/hamradio/6pack.c:458
tty_ldisc_receive_buf+0xeb/0xf0 drivers/tty/tty_buffer.c:465
tty_port_default_receive_buf+0x87/0xd0 drivers/tty/tty_port.c:38
receive_buf drivers/tty/tty_buffer.c:481 [inline]
flush_to_ldisc+0x1d5/0x260 drivers/tty/tty_buffer.c:533
process_one_work+0x3d4/0x890 kernel/workqueue.c:2264
worker_thread+0xa0/0x800 kernel/workqueue.c:2410
kthread+0x1d4/0x200 drivers/block/aoe/aoecmd.c:1253
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:352

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 8154 Comm: kworker/u4:5 Not tainted 5.5.0-rc1-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: events_unbound flush_to_ldisc
==================================================================


---
This bug 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@xxxxxxxxxxxxxxxxx

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.