syzbot


WARNING: bad unlock balance in do_wp_page

Status: upstream: reported on 2026/04/26 08:17
Subsystems: mm
[Documentation on labels]
Reported-by: syzbot+7d60b33a8a546263da7c@syzkaller.appspotmail.com
First crash: 5d07h, last: 14h48m
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [mm?] WARNING: bad unlock balance in do_wp_page 9 (10) 2026/04/27 10:57

Sample crash report:
=====================================
WARNING: bad unlock balance detected!
syzkaller #0 Not tainted
-------------------------------------
udevd/5582 is trying to release lock (rcu_read_lock) at:
[<ffffffff82136fc3>] mmu_notifier_invalidate_range_start include/linux/mmu_notifier.h:475 [inline]
[<ffffffff82136fc3>] wp_page_copy mm/memory.c:3890 [inline]
[<ffffffff82136fc3>] do_wp_page+0x1823/0x3d90 mm/memory.c:4320
but there are no more locks to release!

other info that might help us debug this:
1 lock held by udevd/5582:
 #0: ffff88803d0371c8 (vm_lock){++++}-{0:0}, at: lock_vma_under_rcu+0x1d1/0x500 mm/mmap_lock.c:310

stack backtrace:
CPU: 1 UID: 0 PID: 5582 Comm: udevd Not tainted syzkaller #0 PREEMPT_{RT,(full)} 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026
Call Trace:
 <TASK>
 dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
 print_unlock_imbalance_bug+0xdc/0xf0 kernel/locking/lockdep.c:5298
 __lock_release kernel/locking/lockdep.c:5537 [inline]
 lock_release+0x248/0x3c0 kernel/locking/lockdep.c:5889
 rcu_lock_release include/linux/rcupdate.h:310 [inline]
 rcu_read_unlock include/linux/rcupdate.h:869 [inline]
 pte_unmap include/linux/pgtable.h:117 [inline]
 wp_page_copy mm/memory.c:3960 [inline]
 do_wp_page+0x28fb/0x3d90 mm/memory.c:4320
 handle_pte_fault mm/memory.c:6427 [inline]
 __handle_mm_fault mm/memory.c:6549 [inline]
 handle_mm_fault+0x9f5/0x13c0 mm/memory.c:6718
 do_user_addr_fault+0xa73/0x1340 arch/x86/mm/fault.c:1334
 handle_page_fault arch/x86/mm/fault.c:1474 [inline]
 exc_page_fault+0x6a/0xc0 arch/x86/mm/fault.c:1527
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:618
RIP: 0033:0x559103567f2b
Code: 8d 0d 01 09 03 00 ba b0 00 00 00 48 8d 35 f5 90 02 00 48 8d 3d 2a 92 02 00 e8 c1 75 01 00 e8 9c c9 ff ff 45 31 c9 4d 8b 65 18 <4d> 89 4d 18 4c 8d 6c 24 70 e8 67 fa ff ff 31 ff e8 b0 f9 ff ff 48
RSP: 002b:00007fff01ce56f0 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 000055910981bc80 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 00005591097b1910 R08: 00007fcb6a854b60 R09: 0000000000000000
R10: 0000000000000008 R11: 0000000000000246 R12: 00005591097f6d00
R13: 00005591098b5650 R14: 0000000000000000 R15: 0000000000000000
 </TASK>
------------[ cut here ]------------
rrln < 0 || rrln > RCU_NEST_PMAX
WARNING: kernel/rcu/tree_plugin.h:443 at __rcu_read_unlock+0x79/0xe0 kernel/rcu/tree_plugin.h:443, CPU#1: udevd/5582
Modules linked in:
CPU: 1 UID: 0 PID: 5582 Comm: udevd Not tainted syzkaller #0 PREEMPT_{RT,(full)} 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026
RIP: 0010:__rcu_read_unlock+0x79/0xe0 kernel/rcu/tree_plugin.h:443
Code: 75 66 41 83 3e 00 75 27 43 0f b6 04 3c 84 c0 75 41 8b 03 3d 00 00 00 40 73 0f 5b 41 5c 41 5d 41 5e 41 5f e9 49 78 75 09 cc 90 <0f> 0b 90 eb eb e8 6d 00 00 00 eb d2 89 d9 80 e1 07 80 c1 03 38 c1
RSP: 0000:ffffc90004287ad0 EFLAGS: 00010286
RAX: 00000000ffffffff RBX: ffff888021af04c4 RCX: 0000000000000046
RDX: 0000000000000000 RSI: ffffffff8d860a50 RDI: ffff888021af0000
RBP: ffffc90004287c90 R08: 0000000000000000 R09: 0000000000000000
R10: dffffc0000000000 R11: fffffbfff1bcaadc R12: 1ffff1100435e098
R13: ffffea00004526c0 R14: ffffc90004287be0 R15: dffffc0000000000
FS:  00007fcb6a61b880(0000) GS:ffff88812627d000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005591098b5668 CR3: 0000000029cd4000 CR4: 00000000003526f0
Call Trace:
 <TASK>
 rcu_read_unlock include/linux/rcupdate.h:871 [inline]
 pte_unmap include/linux/pgtable.h:117 [inline]
 wp_page_copy mm/memory.c:3960 [inline]
 do_wp_page+0x2900/0x3d90 mm/memory.c:4320
 handle_pte_fault mm/memory.c:6427 [inline]
 __handle_mm_fault mm/memory.c:6549 [inline]
 handle_mm_fault+0x9f5/0x13c0 mm/memory.c:6718
 do_user_addr_fault+0xa73/0x1340 arch/x86/mm/fault.c:1334
 handle_page_fault arch/x86/mm/fault.c:1474 [inline]
 exc_page_fault+0x6a/0xc0 arch/x86/mm/fault.c:1527
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:618
RIP: 0033:0x559103567f2b
Code: 8d 0d 01 09 03 00 ba b0 00 00 00 48 8d 35 f5 90 02 00 48 8d 3d 2a 92 02 00 e8 c1 75 01 00 e8 9c c9 ff ff 45 31 c9 4d 8b 65 18 <4d> 89 4d 18 4c 8d 6c 24 70 e8 67 fa ff ff 31 ff e8 b0 f9 ff ff 48
RSP: 002b:00007fff01ce56f0 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 000055910981bc80 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000
RBP: 00005591097b1910 R08: 00007fcb6a854b60 R09: 0000000000000000
R10: 0000000000000008 R11: 0000000000000246 R12: 00005591097f6d00
R13: 00005591098b5650 R14: 0000000000000000 R15: 0000000000000000
 </TASK>

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/04/27 01:09 upstream 20b64cf8705a 9c2d0995 .config console log report [disk image] [vmlinux] [kernel image] ci2-upstream-fs WARNING: bad unlock balance in do_wp_page
2026/04/22 08:07 upstream 6596a02b2078 0b6ab7ec .config console log report info [disk image (non-bootable)] [vmlinux] [kernel image] ci-qemu-upstream-386 WARNING: bad unlock balance in do_wp_page
* Struck through repros no longer work on HEAD.