syzbot


KCSAN: data-race in handle_userfault / userfaultfd_wake_function

Status: auto-closed as invalid on 2020/04/16 08:24
Subsystems: fs
[Documentation on labels]
First crash: 1640d, last: 1534d

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

read to 0xffffc9001118b870 of 8 bytes by task 26138 on cpu 1:
 list_empty_careful include/linux/list.h:287 [inline]
 handle_userfault+0xeed/0x1060 fs/userfaultfd.c:564
 do_anonymous_page mm/memory.c:3090 [inline]
 handle_pte_fault mm/memory.c:3943 [inline]
 __handle_mm_fault+0x2db9/0x2e00 mm/memory.c:4075
 handle_mm_fault+0x21b/0x530 mm/memory.c:4112
 do_user_addr_fault arch/x86/mm/fault.c:1441 [inline]
 __do_page_fault+0x456/0x8d0 arch/x86/mm/fault.c:1506
 do_page_fault+0x38/0x194 arch/x86/mm/fault.c:1530
 page_fault+0x34/0x40 arch/x86/entry/entry_64.S:1203
 copy_user_generic_unrolled+0x86/0xc0 arch/x86/lib/copy_user_64.S:89
 copy_from_user include/linux/uaccess.h:144 [inline]
 sctp_getsockopt_assoc_stats+0x90/0x490 net/sctp/socket.c:7309
 sctp_getsockopt net/sctp/socket.c:8167 [inline]
 sctp_getsockopt+0x2e31/0x5258 net/sctp/socket.c:8010
 sock_common_getsockopt+0x67/0x90 net/core/sock.c:3108
 __sys_getsockopt+0xf1/0x210 net/socket.c:2162
 __do_sys_getsockopt net/socket.c:2177 [inline]
 __se_sys_getsockopt net/socket.c:2174 [inline]
 __x64_sys_getsockopt+0x70/0x90 net/socket.c:2174
 do_syscall_64+0xcc/0x3a0 arch/x86/entry/common.c:294
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

write to 0xffffc9001118b870 of 8 bytes by task 26140 on cpu 0:
 INIT_LIST_HEAD include/linux/list.h:29 [inline]
 list_del_init include/linux/list.h:191 [inline]
 userfaultfd_wake_function fs/userfaultfd.c:140 [inline]
 userfaultfd_wake_function+0x168/0x1d0 fs/userfaultfd.c:106
 __wake_up_common+0x7b/0x180 kernel/sched/wait.c:93
 __wake_up_locked_key+0x16/0x20 kernel/sched/wait.c:157
 userfaultfd_release+0x30e/0x3a0 fs/userfaultfd.c:933
 __fput+0x1e1/0x520 fs/file_table.c:280
 ____fput+0x1f/0x30 fs/file_table.c:313
 task_work_run+0xf6/0x130 kernel/task_work.c:113
 tracehook_notify_resume include/linux/tracehook.h:188 [inline]
 exit_to_usermode_loop+0x2b4/0x2c0 arch/x86/entry/common.c:164
 prepare_exit_to_usermode arch/x86/entry/common.c:195 [inline]
 syscall_return_slowpath arch/x86/entry/common.c:278 [inline]
 do_syscall_64+0x384/0x3a0 arch/x86/entry/common.c:304
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 26140 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 (16):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2020/02/06 08:18 https://github.com/google/ktsan.git kcsan 245a43005292 662cf49a .config console log report ci2-upstream-kcsan-gce
2020/02/02 05:51 https://github.com/google/ktsan.git kcsan 245a43005292 2274ad39 .config console log report ci2-upstream-kcsan-gce
2019/12/24 11:22 https://github.com/google/ktsan.git kcsan 245a43005292 be5c2c81 .config console log report ci2-upstream-kcsan-gce
2019/12/15 06:51 https://github.com/google/ktsan.git kcsan 245a43005292 eef6e580 .config console log report ci2-upstream-kcsan-gce
2019/12/12 00:47 https://github.com/google/ktsan.git kcsan ef798c30ba4e 0d368675 .config console log report ci2-upstream-kcsan-gce
2019/12/10 08:48 https://github.com/google/ktsan.git kcsan ef798c30ba4e 4b83c8fb .config console log report ci2-upstream-kcsan-gce
2019/12/06 17:32 https://github.com/google/ktsan.git kcsan ef798c30ba4e 85f26751 .config console log report ci2-upstream-kcsan-gce
2019/12/03 08:43 https://github.com/google/ktsan.git kcsan ef798c30ba4e ab342da3 .config console log report ci2-upstream-kcsan-gce
2019/11/23 07:18 https://github.com/google/ktsan.git kcsan 5863cc791e4c 598ca6c8 .config console log report ci2-upstream-kcsan-gce
2019/11/17 05:04 https://github.com/google/ktsan.git kcsan 5863cc791e4c cdac920b .config console log report ci2-upstream-kcsan-gce
2019/11/08 23:27 https://github.com/google/ktsan.git kcsan 94c006602e13 1e35461e .config console log report ci2-upstream-kcsan-gce
2019/11/04 09:39 https://github.com/google/ktsan.git kcsan 05f2236801fe b35fad31 .config console log report ci2-upstream-kcsan-gce
2019/10/31 23:14 https://github.com/google/ktsan.git kcsan 05f2236801fe a41ca8fa .config console log report ci2-upstream-kcsan-gce
2019/10/27 01:06 https://github.com/google/ktsan.git kcsan 05f2236801fe 25bb509e .config console log report ci2-upstream-kcsan-gce
2019/10/25 05:35 https://github.com/google/ktsan.git kcsan 05f2236801fe d01bb02a .config console log report ci2-upstream-kcsan-gce
2019/10/23 15:26 https://github.com/google/ktsan.git kcsan 05f2236801fe b602d64b .config console log report ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.