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: 655d, last: 4d17h
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
2024/12/21 linux-5.15.y (ToT) 91786f140358 C [report] BUG: sleeping function called from invalid context in f2fs_register_inmem_page
2024/12/21 upstream (ToT) 499551201b5f C Didn't crash
Last patch testing requests (8)
Created Duration User Patch Repo Result
2024/12/19 06:50 14m retest repro linux-5.15.y report log
2024/12/19 06:50 22m retest repro linux-5.15.y OK log
2024/12/19 06:50 17m retest repro linux-5.15.y OK log
2024/12/19 06:50 18m retest repro linux-5.15.y OK log
2024/11/30 21:40 16m retest repro linux-5.15.y report log
2024/10/09 19:17 14m retest repro linux-5.15.y report log
2024/10/09 19:17 19m retest repro linux-5.15.y report log
2024/10/09 19:17 14m 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:
BUG: sleeping function called from invalid context at include/linux/sched/mm.h:209
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 4022, name: syz-executor305
1 lock held by syz-executor305/4022:
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pte_range mm/memory.c:1331 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pmd_range mm/memory.c:1494 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pud_range mm/memory.c:1523 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_p4d_range mm/memory.c:1544 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: unmap_page_range+0x708/0x19d4 mm/memory.c:1565
Preemption disabled at:
[<ffff8000087caaec>] spin_lock include/linux/spinlock.h:363 [inline]
[<ffff8000087caaec>] zap_pte_range mm/memory.c:1331 [inline]
[<ffff8000087caaec>] zap_pmd_range mm/memory.c:1494 [inline]
[<ffff8000087caaec>] zap_pud_range mm/memory.c:1523 [inline]
[<ffff8000087caaec>] zap_p4d_range mm/memory.c:1544 [inline]
[<ffff8000087caaec>] unmap_page_range+0x708/0x19d4 mm/memory.c:1565
CPU: 1 PID: 4022 Comm: syz-executor305 Not tainted 5.15.172-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/30/2024
Call trace:
 dump_backtrace+0x0/0x530 arch/arm64/kernel/stacktrace.c:152
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:216
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x108/0x170 lib/dump_stack.c:106
 dump_stack+0x1c/0x58 lib/dump_stack.c:113
 ___might_sleep+0x380/0x4dc kernel/sched/core.c:9636
 __might_sleep+0x98/0xf0 kernel/sched/core.c:9590
 might_alloc include/linux/sched/mm.h:209 [inline]
 slab_pre_alloc_hook+0x58/0xe8 mm/slab.h:492
 slab_alloc_node mm/slub.c:3134 [inline]
 slab_alloc mm/slub.c:3228 [inline]
 kmem_cache_alloc+0x98/0x45c mm/slub.c:3233
 f2fs_kmem_cache_alloc_nofail fs/f2fs/f2fs.h:2625 [inline]
 f2fs_kmem_cache_alloc fs/f2fs/f2fs.h:2635 [inline]
 f2fs_register_inmem_page+0x1d8/0x8b4 fs/f2fs/segment.c:192
 f2fs_set_data_page_dirty+0x588/0x8e0 fs/f2fs/data.c:3845
 set_page_dirty+0x23c/0x544 mm/page-writeback.c:2631
 zap_pte_range mm/memory.c:1366 [inline]
 zap_pmd_range mm/memory.c:1494 [inline]
 zap_pud_range mm/memory.c:1523 [inline]
 zap_p4d_range mm/memory.c:1544 [inline]
 unmap_page_range+0xbe4/0x19d4 mm/memory.c:1565
 unmap_single_vma+0x13c/0x1e4 mm/memory.c:1610
 unmap_vmas+0x1ac/0x320 mm/memory.c:1642
 exit_mmap+0x2c8/0x558 mm/mmap.c:3186
 __mmput+0xec/0x3b8 kernel/fork.c:1127
 mmput+0x80/0xc8 kernel/fork.c:1148
 exit_mm+0x5f0/0x70c kernel/exit.c:550
 do_exit+0x4d4/0x20bc kernel/exit.c:861
 do_group_exit+0x110/0x268 kernel/exit.c:996
 __do_sys_exit_group kernel/exit.c:1007 [inline]
 __se_sys_exit_group kernel/exit.c:1005 [inline]
 __wake_up_parent+0x0/0x60 kernel/exit.c:1005
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
 do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181
 el0_svc+0x7c/0x1f0 arch/arm64/kernel/entry-common.c:608
 el0t_64_sync_handler+0x84/0xe4 arch/arm64/kernel/entry-common.c:626
 el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584

=============================
[ BUG: Invalid wait context ]
5.15.172-syzkaller #0 Tainted: G        W        
-----------------------------
syz-executor305/4022 is trying to lock:
ffff0000e18e2318 (&fi->inmem_lock){+.+.}-{3:3}, at: f2fs_register_inmem_page+0x2f0/0x8b4 fs/f2fs/segment.c:201
other info that might help us debug this:
context-{4:4}
1 lock held by syz-executor305/4022:
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: spin_lock include/linux/spinlock.h:363 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pte_range mm/memory.c:1331 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pmd_range mm/memory.c:1494 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_pud_range mm/memory.c:1523 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: zap_p4d_range mm/memory.c:1544 [inline]
 #0: ffff0000c8369f18 (ptlock_ptr(page)#2){+.+.}-{2:2}, at: unmap_page_range+0x708/0x19d4 mm/memory.c:1565
stack backtrace:
CPU: 1 PID: 4022 Comm: syz-executor305 Tainted: G        W         5.15.172-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/30/2024
Call trace:
 dump_backtrace+0x0/0x530 arch/arm64/kernel/stacktrace.c:152
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:216
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x108/0x170 lib/dump_stack.c:106
 dump_stack+0x1c/0x58 lib/dump_stack.c:113
 print_lock_invalid_wait_context kernel/locking/lockdep.c:4664 [inline]
 check_wait_context kernel/locking/lockdep.c:4725 [inline]
 __lock_acquire+0x1af0/0x7638 kernel/locking/lockdep.c:4962
 lock_acquire+0x240/0x77c kernel/locking/lockdep.c:5623
 __mutex_lock_common+0x194/0x2154 kernel/locking/mutex.c:596
 __mutex_lock kernel/locking/mutex.c:729 [inline]
 mutex_lock_nested+0xa4/0xf8 kernel/locking/mutex.c:743
 f2fs_register_inmem_page+0x2f0/0x8b4 fs/f2fs/segment.c:201
 f2fs_set_data_page_dirty+0x588/0x8e0 fs/f2fs/data.c:3845
 set_page_dirty+0x23c/0x544 mm/page-writeback.c:2631
 zap_pte_range mm/memory.c:1366 [inline]
 zap_pmd_range mm/memory.c:1494 [inline]
 zap_pud_range mm/memory.c:1523 [inline]
 zap_p4d_range mm/memory.c:1544 [inline]
 unmap_page_range+0xbe4/0x19d4 mm/memory.c:1565
 unmap_single_vma+0x13c/0x1e4 mm/memory.c:1610
 unmap_vmas+0x1ac/0x320 mm/memory.c:1642
 exit_mmap+0x2c8/0x558 mm/mmap.c:3186
 __mmput+0xec/0x3b8 kernel/fork.c:1127
 mmput+0x80/0xc8 kernel/fork.c:1148
 exit_mm+0x5f0/0x70c kernel/exit.c:550
 do_exit+0x4d4/0x20bc kernel/exit.c:861
 do_group_exit+0x110/0x268 kernel/exit.c:996
 __do_sys_exit_group kernel/exit.c:1007 [inline]
 __se_sys_exit_group kernel/exit.c:1005 [inline]
 __wake_up_parent+0x0/0x60 kernel/exit.c:1005
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
 do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181
 el0_svc+0x7c/0x1f0 arch/arm64/kernel/entry-common.c:608
 el0t_64_sync_handler+0x84/0xe4 arch/arm64/kernel/entry-common.c:626
 el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584

Crashes (23):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
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
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.