syzbot


BUG: sleeping function called from invalid context in f2fs_register_inmem_page

Status: upstream: reported C repro on 2023/03/11 15:33
Bug presence: origin:lts-only
[Documentation on labels]
Reported-by: syzbot+0f88499e6ce46b4e9300@syzkaller.appspotmail.com
First crash: 1010d, last: 7d23h
Fix commit to backport (bisect log) :
tree: upstream
commit 3db1de0e582c358dd013f3703cd55b5fe4076436
Author: Daeho Jeong <daehojeong@google.com>
Date: Thu Apr 28 18:18:09 2022 +0000

  f2fs: change the current atomic write way

  
Fix bisection: the issue occurs on the latest tested release (bisect log)
Crash: BUG: sleeping function called from invalid context in f2fs_register_inmem_page (log)
Repro: C syz .config
  
Bug presence (2)
Date Name Commit Repro Result
2025/10/19 linux-5.15.y (ToT) ac56c046adf4 C [report] BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2025/10/19 upstream (ToT) d9043c79ba68 C Didn't crash
Last patch testing requests (8)
Created Duration User Patch Repo Result
2025/12/08 12:32 9m retest repro linux-5.15.y report log
2025/10/16 16:22 12m retest repro linux-5.15.y report log
2025/09/28 13:46 10m retest repro linux-5.15.y report log
2025/08/05 17:30 12m retest repro linux-5.15.y report log
2025/07/20 06:35 9m retest repro linux-5.15.y report log
2025/05/26 08:46 14m retest repro linux-5.15.y report log
2025/05/10 08:39 18m retest repro linux-5.15.y report log
2025/03/15 08:33 12m retest repro linux-5.15.y report log
Fix bisection attempts (4)
Created Duration User Patch Repo Result
2023/09/17 18:39 5h29m fix candidate upstream OK (1) job log
2023/07/06 05:09 5h18m bisect fix linux-5.15.y OK (0) job log log
2023/06/03 07:03 34m bisect fix linux-5.15.y OK (0) job log log
2023/05/02 08:45 37m bisect fix linux-5.15.y OK (0) job log log

Sample crash report:
F2FS-fs (loop0): Unexpected flush for atomic writes: ino=10, npages=767
attempt to access beyond end of device
loop0: rw=2049, want=51208, limit=40427
BUG: sleeping function called from invalid context at include/linux/sched/mm.h:209
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 4402, name: syz.0.24
1 lock held by syz.0.24/4402:
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pte_range mm/memory.c:1342 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pmd_range mm/memory.c:1505 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pud_range mm/memory.c:1534 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_p4d_range mm/memory.c:1555 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: unmap_page_range+0x98d/0x2520 mm/memory.c:1576
Preemption disabled at:
[<0000000000000000>] 0x0
CPU: 1 PID: 4402 Comm: syz.0.24 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025
Call Trace:
 <TASK>
 dump_stack_lvl+0x168/0x230 lib/dump_stack.c:106
 ___might_sleep+0x47c/0x600 kernel/sched/core.c:9658
 might_alloc include/linux/sched/mm.h:209 [inline]
 slab_pre_alloc_hook+0x42/0xc0 mm/slab.h:492
 slab_alloc_node mm/slub.c:3139 [inline]
 slab_alloc mm/slub.c:3233 [inline]
 kmem_cache_alloc+0x3d/0x290 mm/slub.c:3238
 f2fs_kmem_cache_alloc_nofail fs/f2fs/f2fs.h:2631 [inline]
 f2fs_kmem_cache_alloc fs/f2fs/f2fs.h:2641 [inline]
 f2fs_register_inmem_page+0x1c9/0x6a0 fs/f2fs/segment.c:192
 f2fs_set_data_page_dirty+0x826/0xad0 fs/f2fs/data.c:3845
 zap_pte_range mm/memory.c:1377 [inline]
 zap_pmd_range mm/memory.c:1505 [inline]
 zap_pud_range mm/memory.c:1534 [inline]
 zap_p4d_range mm/memory.c:1555 [inline]
 unmap_page_range+0xd85/0x2520 mm/memory.c:1576
 unmap_vmas+0x11b/0x230 mm/memory.c:1653
 exit_mmap+0x38f/0x5f0 mm/mmap.c:3216
 __mmput+0x115/0x3b0 kernel/fork.c:1127
 exit_mm+0x567/0x6c0 kernel/exit.c:550
 do_exit+0x5a1/0x20a0 kernel/exit.c:870
 do_group_exit+0x12e/0x300 kernel/exit.c:997
 get_signal+0x6ca/0x12c0 kernel/signal.c:2900
 arch_do_signal_or_restart+0xc1/0x1300 arch/x86/kernel/signal.c:867
 handle_signal_work kernel/entry/common.c:154 [inline]
 exit_to_user_mode_loop+0x9e/0x130 kernel/entry/common.c:178
 exit_to_user_mode_prepare+0xee/0x180 kernel/entry/common.c:214
 __syscall_exit_to_user_mode_work kernel/entry/common.c:296 [inline]
 syscall_exit_to_user_mode+0x16/0x40 kernel/entry/common.c:307
 do_syscall_64+0x58/0xa0 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7fd600a46fc9
Code: Unable to access opcode bytes at RIP 0x7fd600a46f9f.
RSP: 002b:00007fd6000950e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 00007fd600c9e098 RCX: 00007fd600a46fc9
RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fd600c9e098
RBP: 00007fd600c9e090 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fd600c9e128 R14: 00007ffff9619d60 R15: 00007ffff9619e48
 </TASK>

=============================
[ BUG: Invalid wait context ]
syzkaller #0 Tainted: G        W        
-----------------------------
syz.0.24/4402 is trying to lock:
ffff88805d373618 (&fi->inmem_lock){+.+.}-{3:3}, at: f2fs_register_inmem_page+0x2fc/0x6a0 fs/f2fs/segment.c:201
other info that might help us debug this:
context-{4:4}
1 lock held by syz.0.24/4402:
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pte_range mm/memory.c:1342 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pmd_range mm/memory.c:1505 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pud_range mm/memory.c:1534 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_p4d_range mm/memory.c:1555 [inline]
 #0: ffff88807856ad98 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: unmap_page_range+0x98d/0x2520 mm/memory.c:1576
stack backtrace:
CPU: 1 PID: 4402 Comm: syz.0.24 Tainted: G        W         syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025
Call Trace:
 <TASK>
 dump_stack_lvl+0x168/0x230 lib/dump_stack.c:106
 print_lock_invalid_wait_context kernel/locking/lockdep.c:4664 [inline]
 check_wait_context kernel/locking/lockdep.c:4725 [inline]
 __lock_acquire+0x1be9/0x7c60 kernel/locking/lockdep.c:4962
 lock_acquire+0x197/0x3f0 kernel/locking/lockdep.c:5623
 __mutex_lock_common+0x1eb/0x2390 kernel/locking/mutex.c:596
 __mutex_lock kernel/locking/mutex.c:729 [inline]
 mutex_lock_nested+0x17/0x20 kernel/locking/mutex.c:743
 f2fs_register_inmem_page+0x2fc/0x6a0 fs/f2fs/segment.c:201
 f2fs_set_data_page_dirty+0x826/0xad0 fs/f2fs/data.c:3845
 zap_pte_range mm/memory.c:1377 [inline]
 zap_pmd_range mm/memory.c:1505 [inline]
 zap_pud_range mm/memory.c:1534 [inline]
 zap_p4d_range mm/memory.c:1555 [inline]
 unmap_page_range+0xd85/0x2520 mm/memory.c:1576
 unmap_vmas+0x11b/0x230 mm/memory.c:1653
 exit_mmap+0x38f/0x5f0 mm/mmap.c:3216
 __mmput+0x115/0x3b0 kernel/fork.c:1127
 exit_mm+0x567/0x6c0 kernel/exit.c:550
 do_exit+0x5a1/0x20a0 kernel/exit.c:870
 do_group_exit+0x12e/0x300 kernel/exit.c:997
 get_signal+0x6ca/0x12c0 kernel/signal.c:2900
 arch_do_signal_or_restart+0xc1/0x1300 arch/x86/kernel/signal.c:867
 handle_signal_work kernel/entry/common.c:154 [inline]
 exit_to_user_mode_loop+0x9e/0x130 kernel/entry/common.c:178
 exit_to_user_mode_prepare+0xee/0x180 kernel/entry/common.c:214
 __syscall_exit_to_user_mode_work kernel/entry/common.c:296 [inline]
 syscall_exit_to_user_mode+0x16/0x40 kernel/entry/common.c:307
 do_syscall_64+0x58/0xa0 arch/x86/entry/common.c:86
 entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7fd600a46fc9
Code: Unable to access opcode bytes at RIP 0x7fd600a46f9f.
RSP: 002b:00007fd6000950e8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: fffffffffffffe00 RBX: 00007fd600c9e098 RCX: 00007fd600a46fc9
RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00007fd600c9e098
RBP: 00007fd600c9e090 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fd600c9e128 R14: 00007ffff9619d60 R15: 00007ffff9619e48
 </TASK>

Crashes (25):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/10/19 10:43 linux-5.15.y 29e53a5b1c4f 1c8c8cd8 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2024/11/16 21:14 linux-5.15.y d98fd109f827 cfe3a04a .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/11/19 17:37 linux-5.15.y 80529b4968a8 cb976f63 .config console log report syz [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/11/19 17:19 linux-5.15.y 80529b4968a8 cb976f63 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/04/02 08:32 linux-5.15.y c957cbb87315 f325deb0 .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/03/27 07:23 linux-5.15.y 115472395b0a fbf0499a .config console log report syz [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/03/13 07:38 linux-5.15.y bbf9f29bac04 5205ef30 .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2025/01/23 09:14 linux-5.15.y 4735586da88e a44b0418 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2024/11/16 20:00 linux-5.15.y d98fd109f827 cfe3a04a .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/12/06 18:43 linux-5.15.y 9b91d36ba301 e3299f55 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/12/05 23:27 linux-5.15.y 9b91d36ba301 858d62d1 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/12/03 10:25 linux-5.15.y 9b91d36ba301 f819d6f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/11/30 01:38 linux-5.15.y a78d278e01b1 f819d6f7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/11/29 17:30 linux-5.15.y a78d278e01b1 6e78f9ce .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/11/29 02:19 linux-5.15.y a78d278e01b1 1adfb6f6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/11/28 19:16 linux-5.15.y a78d278e01b1 9fe51b7c .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/11/28 09:33 linux-5.15.y 2a910f4af54d 9fe51b7c .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/11/23 17:45 linux-5.15.y 2a910f4af54d 5b429f39 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/11/22 19:14 linux-5.15.y 2a910f4af54d 03e12510 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/03/27 22:27 linux-5.15.y 115472395b0a 47f3aaf1 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/03/27 13:18 linux-5.15.y 115472395b0a f8f96aa9 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/03/27 10:14 linux-5.15.y 115472395b0a f8f96aa9 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/03/26 22:41 linux-5.15.y 115472395b0a fbf0499a .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/03/12 19:18 linux-5.15.y bbf9f29bac04 5205ef30 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2023/03/11 15:33 linux-5.15.y d214f240b0f6 5205ef30 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan BUG: sleeping function called from invalid context in f2fs_register_inmem_page
* Struck through repros no longer work on HEAD.