syzbot


WARNING: bad unlock balance in do_fault

Status: upstream: reported on 2026/05/02 11:25
Subsystems: mm
[Documentation on labels]
Reported-by: syzbot+c4f59f1ba89c777b77d4@syzkaller.appspotmail.com
First crash: 7d01h, last: 7d01h
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [mm?] WARNING: bad unlock balance in do_fault 0 (1) 2026/05/02 11:25

Sample crash report:
=====================================
WARNING: bad unlock balance detected!
syzkaller #0 Not tainted
-------------------------------------
dhcpcd-run-hook/5691 is trying to release lock (rcu_read_lock) at:
[<ffffffff8259a4e4>] rcu_lock_release include/linux/rcupdate.h:310 [inline]
[<ffffffff8259a4e4>] rcu_read_unlock include/linux/rcupdate.h:869 [inline]
[<ffffffff8259a4e4>] do_fault_around mm/memory.c:5854 [inline]
[<ffffffff8259a4e4>] do_read_fault mm/memory.c:5884 [inline]
[<ffffffff8259a4e4>] do_fault+0x9b4/0x1750 mm/memory.c:6027
but there are no more locks to release!

other info that might help us debug this:
1 lock held by dhcpcd-run-hook/5691:
 #0: ffff888024e92a88 (vm_lock){++++}-{0:0}, at: lock_vma_under_rcu+0x11d/0x590 mm/mmap_lock.c:310

stack backtrace:
CPU: 3 UID: 0 PID: 5691 Comm: dhcpcd-run-hook Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
 print_unlock_imbalance_bug.part.0+0xfb/0x106 kernel/locking/lockdep.c:5298
 print_unlock_imbalance_bug kernel/locking/lockdep.c:5278 [inline]
 __lock_release kernel/locking/lockdep.c:5537 [inline]
 lock_release kernel/locking/lockdep.c:5889 [inline]
 lock_release+0x28d/0x310 kernel/locking/lockdep.c:5875
 rcu_lock_release include/linux/rcupdate.h:310 [inline]
 rcu_read_unlock include/linux/rcupdate.h:869 [inline]
 do_fault_around mm/memory.c:5854 [inline]
 do_read_fault mm/memory.c:5884 [inline]
 do_fault+0x9b9/0x1750 mm/memory.c:6027
 do_pte_missing mm/memory.c:4550 [inline]
 handle_pte_fault mm/memory.c:6411 [inline]
 __handle_mm_fault+0x187d/0x2a00 mm/memory.c:6549
 handle_mm_fault+0x36d/0xa20 mm/memory.c:6718
 do_user_addr_fault+0x5a3/0x12f0 arch/x86/mm/fault.c:1334
 handle_page_fault arch/x86/mm/fault.c:1474 [inline]
 exc_page_fault+0x6f/0xd0 arch/x86/mm/fault.c:1527
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:618
RIP: 0033:0x7ff2e82ebfeb
Code: 08 48 8b 78 08 48 89 13 e8 5e f9 ff ff 97 e8 bb ff ff ff 48 09 e8 40 0f 95 c5 40 0f b6 ed eb 04 48 83 2b 08 48 95 5a 5b 5d c3 <55> 53 89 fb 48 83 ec 18 48 8b 3e 48 89 74 24 08 e8 a9 e7 f9 ff 80
RSP: 002b:00007fff321b8cc8 EFLAGS: 00010287
RAX: 00007ff2e8336190 RBX: 0000564f23c56910 RCX: 0000000000000002
RDX: 0000564f23c56910 RSI: 0000564f23c5f120 RDI: 0000000000000004
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000020
R10: 0000000000000040 R11: 0000000000000000 R12: 0000564f23c5ee50
R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000000
 </TASK>
------------[ cut here ]------------
rrln < 0 || rrln > RCU_NEST_PMAX
WARNING: kernel/rcu/tree_plugin.h:443 at __rcu_read_unlock kernel/rcu/tree_plugin.h:443 [inline], CPU#3: dhcpcd-run-hook/5691
WARNING: kernel/rcu/tree_plugin.h:443 at __rcu_read_unlock+0x235/0x5e0 kernel/rcu/tree_plugin.h:430, CPU#3: dhcpcd-run-hook/5691
Modules linked in:
CPU: 3 UID: 0 PID: 5691 Comm: dhcpcd-run-hook Not tainted syzkaller #0 PREEMPT(full) 
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:__rcu_read_unlock kernel/rcu/tree_plugin.h:443 [inline]
RIP: 0010:__rcu_read_unlock+0x235/0x5e0 kernel/rcu/tree_plugin.h:430
Code: 74 11 c7 45 58 01 00 00 00 bf 09 00 00 00 e8 92 a3 da ff e8 fd de 22 00 9c 58 f6 c4 02 0f 85 dd 02 00 00 fb e9 57 fe ff ff 90 <0f> 0b 90 5b 5d 41 5c 41 5d 41 5e 41 5f e9 d9 f0 9c 09 e8 84 60 87
RSP: 0000:ffffc90003f9fbe8 EFLAGS: 00010286
RAX: 00000000ffffffff RBX: ffff88802a16a500 RCX: ffffffff81e7203e
RDX: 0000000000000000 RSI: ffffffff8def466d RDI: ffff88802a16a9c4
RBP: 0000000000000100 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000080000000 R11: 0000000000000012 R12: 0000000000000001
R13: 00000000000000e0 R14: ffffc90003f9fd68 R15: 00000000000000f0
FS:  00007ff2e7fcfc80(0000) GS:ffff888097480000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ff2e82ebfeb CR3: 0000000050d47000 CR4: 0000000000352ef0
Call Trace:
 <TASK>
 rcu_read_unlock include/linux/rcupdate.h:871 [inline]
 do_fault_around mm/memory.c:5854 [inline]
 do_read_fault mm/memory.c:5884 [inline]
 do_fault+0x9be/0x1750 mm/memory.c:6027
 do_pte_missing mm/memory.c:4550 [inline]
 handle_pte_fault mm/memory.c:6411 [inline]
 __handle_mm_fault+0x187d/0x2a00 mm/memory.c:6549
 handle_mm_fault+0x36d/0xa20 mm/memory.c:6718
 do_user_addr_fault+0x5a3/0x12f0 arch/x86/mm/fault.c:1334
 handle_page_fault arch/x86/mm/fault.c:1474 [inline]
 exc_page_fault+0x6f/0xd0 arch/x86/mm/fault.c:1527
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:618
RIP: 0033:0x7ff2e82ebfeb
Code: 08 48 8b 78 08 48 89 13 e8 5e f9 ff ff 97 e8 bb ff ff ff 48 09 e8 40 0f 95 c5 40 0f b6 ed eb 04 48 83 2b 08 48 95 5a 5b 5d c3 <55> 53 89 fb 48 83 ec 18 48 8b 3e 48 89 74 24 08 e8 a9 e7 f9 ff 80
RSP: 002b:00007fff321b8cc8 EFLAGS: 00010287
RAX: 00007ff2e8336190 RBX: 0000564f23c56910 RCX: 0000000000000002
RDX: 0000564f23c56910 RSI: 0000564f23c5f120 RDI: 0000000000000004
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000020
R10: 0000000000000040 R11: 0000000000000000 R12: 0000564f23c5ee50
R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000000000
 </TASK>

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/04/28 11:19 upstream 3b3bea6d4b9c 340bcdf0 .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 WARNING: bad unlock balance in do_fault
* Struck through repros no longer work on HEAD.