syzbot


kernel BUG in filemap_unaccount_folio

Status: upstream: reported C repro on 2023/12/13 08:56
Bug presence: origin:upstream
Labels: missing-backport
[Documentation on labels]
Reported-by: syzbot+3d218f7b6c5511a83a79@syzkaller.appspotmail.com
First crash: 326d, last: 83d
Fix commit to backport (bisect log) :
tree: upstream
commit 7d79cd784470395539bda91bf0b3505ff5b2ab6d
Author: Vivek Kasireddy <vivek.kasireddy@intel.com>
Date: Mon Jun 24 06:36:13 2024 +0000

  udmabuf: use vmf_insert_pfn and VM_PFNMAP for handling mmap

  
Fix bisection: the issue occurs on the latest tested release (bisect log)
Crash: kernel BUG in filemap_unaccount_folio (log)
Repro: C syz .config
  
Bug presence (3)
Date Name Commit Repro Result
2024/08/09 linux-6.1.y (ToT) 48d525b0e463 C [report] kernel BUG in filemap_unaccount_folio
2024/05/02 upstream (ToT) 0106679839f7 C [report] kernel BUG in filemap_unaccount_folio
2024/08/09 upstream (ToT) ee9a43b7cfe2 C Didn't crash
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream kernel BUG in filemap_unaccount_folio mm C done done 39 113d 424d 0/28 upstream: reported C repro on 2023/09/06 18:51
upstream kernel BUG in __filemap_get_folio kernel C done 814 758d 928d 22/28 fixed on 2023/02/24 13:50
Fix bisection attempts (6)
Created Duration User Patch Repo Result
2024/08/18 13:55 5h29m fix candidate upstream OK (1) job log
2024/07/15 06:52 3h41m bisect fix linux-6.1.y OK (0) job log log
2024/06/03 05:26 1h30m bisect fix linux-6.1.y OK (0) job log log
2024/04/02 20:26 2h25m bisect fix linux-6.1.y OK (0) job log log
2024/03/03 11:50 1h22m bisect fix linux-6.1.y OK (0) job log log
2024/01/24 09:48 1h22m bisect fix linux-6.1.y OK (0) job log log

Sample crash report:
 tlb_finish_mmu+0xce/0x1f0 mm/mmu_gather.c:361
 unmap_region+0x29f/0x2f0 mm/mmap.c:2332
 do_mas_align_munmap+0xec8/0x15f0 mm/mmap.c:2582
 do_mas_munmap+0x246/0x2b0 mm/mmap.c:2640
 __vm_munmap+0x268/0x370 mm/mmap.c:2917
 __do_sys_munmap mm/mmap.c:2942 [inline]
 __se_sys_munmap mm/mmap.c:2939 [inline]
 __x64_sys_munmap+0x5c/0x70 mm/mmap.c:2939
 do_syscall_x64 arch/x86/entry/common.c:51 [inline]
 do_syscall_64+0x3b/0xb0 arch/x86/entry/common.c:81
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
------------[ cut here ]------------
kernel BUG at mm/filemap.c:153!
invalid opcode: 0000 [#1] PREEMPT SMP KASAN
CPU: 0 PID: 3548 Comm: syz-executor232 Not tainted 6.1.89-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
RIP: 0010:filemap_unaccount_folio+0x5c2/0xa60 mm/filemap.c:153
Code: 07 38 c1 0f 8c 21 fe ff ff 48 89 ef e8 e7 21 2b 00 e9 14 fe ff ff e8 cd aa d3 ff 4c 89 ef 48 c7 c6 a0 fd f4 8a e8 5e 5a 13 00 <0f> 0b e8 b7 aa d3 ff 4c 89 ef 48 c7 c6 20 03 f5 8a e8 48 5a 13 00
RSP: 0018:ffffc90003b9f638 EFLAGS: 00010046
RAX: 7a96001ae7d0f100 RBX: ffff88801e413c38 RCX: ffffc90003b9f403
RDX: 0000000000000002 RSI: ffffffff8aec1340 RDI: ffffffff8b3d42e0
RBP: ffffc90003b9f7d8 R08: dffffc0000000000 R09: fffffbfff1ce6fde
R10: 0000000000000000 R11: dffffc0000000001 R12: ffff88801e413c38
R13: ffffea0001c08d40 R14: ffffea0001c08d40 R15: ffffea0001c08d40
FS:  00005555567d7380(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fcc4816e0e0 CR3: 000000001eab1000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 __filemap_remove_folio+0xc7/0xaa0 mm/filemap.c:222
 filemap_remove_folio+0x105/0x2e0 mm/filemap.c:255
 truncate_inode_folio+0x59/0x70 mm/truncate.c:195
 shmem_undo_range+0x570/0x2390 mm/shmem.c:942
 shmem_truncate_range mm/shmem.c:1062 [inline]
 shmem_evict_inode+0x265/0xa60 mm/shmem.c:1171
 evict+0x2a4/0x620 fs/inode.c:666
 __dentry_kill+0x436/0x650 fs/dcache.c:607
 dentry_kill+0xbb/0x290
 dput+0xfb/0x1d0 fs/dcache.c:914
 __fput+0x5e4/0x890 fs/file_table.c:328
 task_work_run+0x246/0x300 kernel/task_work.c:179
 resume_user_mode_work include/linux/resume_user_mode.h:49 [inline]
 exit_to_user_mode_loop+0xde/0x100 kernel/entry/common.c:177
 exit_to_user_mode_prepare+0xb1/0x140 kernel/entry/common.c:210
 __syscall_exit_to_user_mode_work kernel/entry/common.c:292 [inline]
 syscall_exit_to_user_mode+0x60/0x270 kernel/entry/common.c:303
 do_syscall_64+0x47/0xb0 arch/x86/entry/common.c:87
 entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7fcc480f6ad0
Code: ff f7 d8 64 89 02 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 80 3d d1 85 07 00 00 74 17 b8 03 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 48 c3 0f 1f 80 00 00 00 00 48 83 ec 18 89 7c
RSP: 002b:00007ffe736a8dd8 EFLAGS: 00000202 ORIG_RAX: 0000000000000003
RAX: 0000000000000000 RBX: 0000000000000005 RCX: 00007fcc480f6ad0
RDX: 0000000000000000 RSI: 0000000000001000 RDI: 0000000000000004
RBP: 00007ffe736a8df0 R08: 0000000000000006 R09: 0000000000000000
R10: 0000000000008013 R11: 0000000000000202 R12: 00007fcc4816a5f0
R13: 00007ffe736a8fd8 R14: 0000000000000001 R15: 0000000000000001
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:filemap_unaccount_folio+0x5c2/0xa60 mm/filemap.c:153
Code: 07 38 c1 0f 8c 21 fe ff ff 48 89 ef e8 e7 21 2b 00 e9 14 fe ff ff e8 cd aa d3 ff 4c 89 ef 48 c7 c6 a0 fd f4 8a e8 5e 5a 13 00 <0f> 0b e8 b7 aa d3 ff 4c 89 ef 48 c7 c6 20 03 f5 8a e8 48 5a 13 00
RSP: 0018:ffffc90003b9f638 EFLAGS: 00010046
RAX: 7a96001ae7d0f100 RBX: ffff88801e413c38 RCX: ffffc90003b9f403
RDX: 0000000000000002 RSI: ffffffff8aec1340 RDI: ffffffff8b3d42e0
RBP: ffffc90003b9f7d8 R08: dffffc0000000000 R09: fffffbfff1ce6fde
R10: 0000000000000000 R11: dffffc0000000001 R12: ffff88801e413c38
R13: ffffea0001c08d40 R14: ffffea0001c08d40 R15: ffffea0001c08d40
FS:  00005555567d7380(0000) GS:ffff8880b9800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007fcc4816e0e0 CR3: 000000001eab1000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

Crashes (7):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/05/01 22:07 linux-6.1.y dcbc050cb0d3 3ba885bc .config console log report syz C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan kernel BUG in filemap_unaccount_folio
2024/05/01 19:55 linux-6.1.y dcbc050cb0d3 3ba885bc .config console log report syz C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 kernel BUG in filemap_unaccount_folio
2023/12/25 06:39 linux-6.1.y 4aa6747d9352 fb427a07 .config console log report syz C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 kernel BUG in filemap_unaccount_folio
2023/12/13 08:56 linux-6.1.y e7cddbb41b63 ebcad15c .config console log report syz C [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 kernel BUG in filemap_unaccount_folio
2024/08/12 16:34 linux-6.1.y 36790ef5e00b 842184b3 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan kernel BUG in filemap_unaccount_folio
2024/05/01 19:18 linux-6.1.y dcbc050cb0d3 3ba885bc .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan kernel BUG in filemap_unaccount_folio
2024/05/01 19:25 linux-6.1.y dcbc050cb0d3 3ba885bc .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan-arm64 kernel BUG in filemap_unaccount_folio
* Struck through repros no longer work on HEAD.