syzbot


KCSAN: data-race in filemap_read_folio / filemap_read_folio

Status: moderation: reported on 2025/05/02 23:00
Subsystems: serial
[Documentation on labels]
Reported-by: syzbot+7dbf7a0b5d0514f4e600@syzkaller.appspotmail.com
First crash: 46d, last: 2d11h

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

read-write to 0xffff888103646520 of 4 bytes by task 12813 on cpu 0:
 shrink_readahead_size_eio mm/filemap.c:2354 [inline]
 filemap_read_folio+0xea/0x110 mm/filemap.c:2424
 filemap_fault+0x568/0xb40 mm/filemap.c:3504
 __do_fault+0xbc/0x200 mm/memory.c:5189
 do_read_fault mm/memory.c:5610 [inline]
 do_fault mm/memory.c:5744 [inline]
 do_pte_missing mm/memory.c:4251 [inline]
 handle_pte_fault mm/memory.c:6089 [inline]
 __handle_mm_fault mm/memory.c:6232 [inline]
 handle_mm_fault+0xf78/0x2be0 mm/memory.c:6401
 do_user_addr_fault+0x3fe/0x1090 arch/x86/mm/fault.c:1387
 handle_page_fault arch/x86/mm/fault.c:1476 [inline]
 exc_page_fault+0x62/0xa0 arch/x86/mm/fault.c:1532
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623
 rep_movs_alternative+0x4a/0x90 arch/x86/lib/copy_user_64.S:68
 copy_user_generic arch/x86/include/asm/uaccess_64.h:126 [inline]
 raw_copy_from_user arch/x86/include/asm/uaccess_64.h:141 [inline]
 _inline_copy_from_user include/linux/uaccess.h:178 [inline]
 _copy_from_user+0x6f/0xb0 lib/usercopy.c:18
 copy_from_user include/linux/uaccess.h:212 [inline]
 sel_write_load+0x192/0x380 security/selinux/selinuxfs.c:598
 vfs_write+0x269/0x8e0 fs/read_write.c:684
 ksys_write+0xda/0x1a0 fs/read_write.c:738
 __do_sys_write fs/read_write.c:749 [inline]
 __se_sys_write fs/read_write.c:746 [inline]
 __x64_sys_write+0x40/0x50 fs/read_write.c:746
 x64_sys_call+0x2cdd/0x2fb0 arch/x86/include/generated/asm/syscalls_64.h:2
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd2/0x200 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read-write to 0xffff888103646520 of 4 bytes by task 12810 on cpu 1:
 shrink_readahead_size_eio mm/filemap.c:2354 [inline]
 filemap_read_folio+0xea/0x110 mm/filemap.c:2424
 filemap_fault+0x568/0xb40 mm/filemap.c:3504
 __do_fault+0xbc/0x200 mm/memory.c:5189
 do_read_fault mm/memory.c:5610 [inline]
 do_fault mm/memory.c:5744 [inline]
 do_pte_missing mm/memory.c:4251 [inline]
 handle_pte_fault mm/memory.c:6089 [inline]
 __handle_mm_fault mm/memory.c:6232 [inline]
 handle_mm_fault+0xf78/0x2be0 mm/memory.c:6401
 do_user_addr_fault+0x793/0x1090 arch/x86/mm/fault.c:1387
 handle_page_fault arch/x86/mm/fault.c:1476 [inline]
 exc_page_fault+0x62/0xa0 arch/x86/mm/fault.c:1532
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623
 fault_in_readable+0xad/0x170 mm/gup.c:-1
 fault_in_iov_iter_readable+0x129/0x210 lib/iov_iter.c:94
 generic_perform_write+0x3cf/0x490 mm/filemap.c:4161
 __generic_file_write_iter+0x9e/0x120 mm/filemap.c:4229
 generic_file_write_iter+0x8d/0x2f0 mm/filemap.c:4255
 new_sync_write fs/read_write.c:593 [inline]
 vfs_write+0x4a0/0x8e0 fs/read_write.c:686
 ksys_write+0xda/0x1a0 fs/read_write.c:738
 __do_sys_write fs/read_write.c:749 [inline]
 __se_sys_write fs/read_write.c:746 [inline]
 __x64_sys_write+0x40/0x50 fs/read_write.c:746
 x64_sys_call+0x2cdd/0x2fb0 arch/x86/include/generated/asm/syscalls_64.h:2
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd2/0x200 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x00000002 -> 0x00000000

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 12810 Comm: syz.6.3187 Not tainted 6.16.0-rc1-syzkaller-00239-g08215f5486ec #0 PREEMPT(voluntary) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
==================================================================

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/06/16 03:50 upstream 08215f5486ec 5f4b362d .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in filemap_read_folio / filemap_read_folio
2025/05/02 22:59 upstream 2bfcee565c3a b0714e37 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in filemap_read_folio / filemap_read_folio
* Struck through repros no longer work on HEAD.