syzbot
BUG: sleeping function called from invalid context in __synchronize_srcu
Status:
upstream: reported on 2026/10/16 02:45
Subsystems:
pm
[Documentation on labels]
Reported-by: syzbot+136ee4ebfb4a81dab91b@syzkaller.appspotmail.com
First crash: 1d02h, last: 1d02h
Sample crash report:
BUG: sleeping function called from invalid context at kernel/workqueue.c:4561
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 13343, name: syz-executor
preempt_count: 100, expected: 0
RCU nest depth: 1, expected: 0
locks held by syz-executor/13343: 3, last CPU#0:
#0: ffff888026340460 (sb_writers#5){.+.+}-{0:0}, at: filename_unlinkat+0x1ad/0x730 fs/namei.c:5725
#1: ffffffff8fdec3e0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:309 [inline]
#1: ffffffff8fdec3e0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline]
#1: ffffffff8fdec3e0 (rcu_read_lock){....}-{1:3}, at: find_lock_entries+0x10f/0x1190 mm/filemap.c:2188
#2: ffffc90000007c98 ((&vub300->inactivity_timer)){+.-.}-{0:0}, at: call_timer_fn+0x11d/0x5f0 kernel/time/timer.c:1745
Preemption disabled at:
[<ffffffff81c9ef13>] softirq_handle_begin kernel/softirq.c:486 [inline]
[<ffffffff81c9ef13>] handle_softirqs+0xf3/0x9d0 kernel/softirq.c:621
CPU: 0 UID: 0 PID: 13343 Comm: syz-executor Tainted: G L syzkaller #0 PREEMPT(full)
Tainted: [L]=SOFTLOCKUP
=============================
WARNING: suspicious RCU usage
syzkaller #0 Tainted: G W L
-----------------------------
kernel/rcu/srcutree.c:1464 Illegal synchronize_srcu() in same-type SRCU (or in RCU) read-side critical section!
other info that might help us debug this:
rcu_scheduler_active = 2, debug_locks = 1
locks held by syz-executor/13343: 3, last CPU#0:
#0:
ffff888026340460
(
sb_writers
#5
){.+.+}-{0:0}
, at: filename_unlinkat+0x1ad/0x730 fs/namei.c:5725
#1:
ffffffff8fdec3e0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:309 [inline]
ffffffff8fdec3e0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline]
ffffffff8fdec3e0 (rcu_read_lock){....}-{1:3}, at: find_lock_entries+0x10f/0x1190 mm/filemap.c:2188
#2: ffffc90000007c98 ((&vub300->inactivity_timer)){+.-.}-{0:0}, at: call_timer_fn+0x11d/0x5f0 kernel/time/timer.c:1745
stack backtrace:
CPU: 0 UID: 0 PID: 13343 Comm: syz-executor Tainted: G W L syzkaller #0 PREEMPT(full)
Tainted: [W]=WARN, [L]=SOFTLOCKUP
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
<IRQ>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120
lockdep_rcu_suspicious.cold+0x4f/0xb2 kernel/locking/lockdep.c:6972
__synchronize_srcu+0x29d/0x300 kernel/rcu/srcutree.c:1464
wakeup_source_remove drivers/base/power/wakeup.c:201 [inline]
wakeup_source_unregister.part.0+0x12c/0x540 drivers/base/power/wakeup.c:237
wakeup_source_unregister+0x1f/0x30 drivers/base/power/wakeup.c:236
mmc_host_classdev_release+0x42/0x120 drivers/mmc/core/host.c:69
device_release+0xd2/0x270 drivers/base/core.c:2640
kobject_cleanup lib/kobject.c:689 [inline]
kobject_release lib/kobject.c:720 [inline]
kref_put include/linux/kref.h:65 [inline]
kobject_put+0x1f7/0x640 lib/kobject.c:737
put_device+0x1f/0x30 drivers/base/core.c:3884
vub300_delete drivers/mmc/host/vub300.c:379 [inline]
kref_put include/linux/kref.h:65 [inline]
vub300_inactivity_timer_expired drivers/mmc/host/vub300.c:747 [inline]
vub300_inactivity_timer_expired+0x42f/0x550 drivers/mmc/host/vub300.c:742
call_timer_fn+0x198/0x5f0 kernel/time/timer.c:1748
expire_timers kernel/time/timer.c:1799 [inline]
__run_timers+0x757/0xb00 kernel/time/timer.c:2374
__run_timer_base kernel/time/timer.c:2386 [inline]
__run_timer_base kernel/time/timer.c:2378 [inline]
run_timer_base+0x114/0x190 kernel/time/timer.c:2395
run_timer_softirq+0x1a/0x50 kernel/time/timer.c:2405
handle_softirqs+0x1e6/0x9d0 kernel/softirq.c:645
__do_softirq kernel/softirq.c:679 [inline]
invoke_softirq kernel/softirq.c:519 [inline]
__irq_exit_rcu+0x16a/0x210 kernel/softirq.c:758
irq_exit_rcu+0x9/0x30 kernel/softirq.c:775
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1062 [inline]
sysvec_apic_timer_interrupt+0xa3/0xc0 arch/x86/kernel/apic/apic.c:1062
</IRQ>
<TASK>
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674
RIP: 0010:__sanitizer_cov_trace_pc+0x46/0x70 kernel/kcov.c:213
Code: 00 01 00 ff 74 1e f6 c4 01 74 44 a9 00 00 00 0f 75 3d f7 c1 00 00 00 f0 75 35 8b 82 44 17 00 00 85 c0 74 2b 8b 82 18 17 00 00 <83> f8 02 75 20 48 8b 8a 20 17 00 00 8b 92 1c 17 00 00 48 8b 01 48
RSP: 0000:ffffc9002334f5d8 EFLAGS: 00000246
RAX: 0000000000000000 RBX: ffffc9002334f6c0 RCX: 0000000000000000
RDX: ffff888073702580 RSI: ffffffff8bd06124 RDI: ffff888073702580
RBP: 0000000000002a3b R08: 0000000000000006 R09: 0000000000002a3b
R10: fffffffffffffffe R11: 0000000000000001 R12: fffffffffffffffe
R13: ffff888050b7a680 R14: 0000000000000000 R15: dffffc0000000000
xas_find+0xc4/0x8e0 lib/xarray.c:1408
find_get_entry mm/filemap.c:2085 [inline]
find_lock_entries+0x176/0x1190 mm/filemap.c:2189
shmem_undo_range+0x212/0x1570 mm/shmem.c:1143
shmem_truncate_range mm/shmem.c:1289 [inline]
shmem_evict_inode+0x3b1/0xca0 mm/shmem.c:1420
evict+0x3c2/0xad0 fs/inode.c:822
iput_final fs/inode.c:2014 [inline]
iput.part.0+0x989/0x1050 fs/inode.c:2063
iput+0x35/0x40 fs/inode.c:2029
filename_unlinkat+0x466/0x730 fs/namei.c:5752
__do_sys_unlink fs/namei.c:5783 [inline]
__se_sys_unlink fs/namei.c:5780 [inline]
__ia32_sys_unlink+0x45/0x60 fs/namei.c:5780
do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:79 [inline]
__do_fast_syscall_32+0x13a/0x8b0 arch/x86/entry/syscall_32.c:291
do_fast_syscall_32+0x32/0x70 arch/x86/entry/syscall_32.c:316
entry_SYSENTER_compat_after_hwframe+0x84/0x8e
RIP: 0023:0xf7f95fec
Code: d2 74 05 c1 e8 0c 89 02 8b 5d fc 31 c0 c9 c3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 2e 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 58 b8
RSP: 002b:00000000ffb7b7c8 EFLAGS: 00000292
ORIG_RAX: 000000000000000a
RAX: ffffffffffffffda RBX: 00000000ffb7b870 RCX: 0000000000008000
RDX: 00000000f741aff4 RSI: 0000000000000000 RDI: 00000000ffb7c904
RBP: 00000000ffb7b870 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
</TASK>
ODEBUG: object ffffc90000007a60 is NOT on stack ffffc90023348000, but annotated.
------------[ cut here ]------------
1
WARNING: lib/debugobjects.c:672 at debug_object_is_on_stack lib/debugobjects.c:672 [inline], CPU#0: syz-executor/13343
WARNING: lib/debugobjects.c:672 at lookup_object_or_alloc.part.0.cold+0x19/0x40 lib/debugobjects.c:705, CPU#0: syz-executor/13343
Modules linked in:
CPU: 0 UID: 0 PID: 13343 Comm: syz-executor Tainted: G W L syzkaller #0 PREEMPT(full)
Tainted: [W]=WARN, [L]=SOFTLOCKUP
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:debug_object_is_on_stack lib/debugobjects.c:672 [inline]
RIP: 0010:lookup_object_or_alloc.part.0.cold+0x19/0x40 lib/debugobjects.c:705
Code: c4 60 5b 5d 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 83 c5 01 89 2d 20 28 7d 1b 4c 89 e6 48 c7 c7 c0 65 62 8c e8 e1 c7 eb ff 90 <0f> 0b 90 e9 62 70 fe 03 83 c5 01 89 2d ff 27 7d 1b 49 39 c4 73 da
RSP: 0000:ffffc900000078f0 EFLAGS: 00010082
RAX: 0000000000000050 RBX: ffff8880150a88f8 RCX: 0000000000000000
RDX: 0000000000000050 RSI: ffffffff81e9ad09 RDI: fffff52000000f0f
RBP: 0000000000000001 R08: 0000000000000007 R09: 0000000000000000
R10: 0000000000000101 R11: 0000000000000001 R12: ffffc90000007a60
R13: ffff888073702580 R14: 0000000000000001 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff88809574a000(0063) knlGS:0000000056b1e480
CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033
CR2: 00000000f737dffc CR3: 000000004e89d000 CR4: 0000000000352ef0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 000000000000000e DR6: 00000000ffff0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
lookup_object_or_alloc lib/debugobjects.c:682 [inline]
__debug_object_init+0x2a9/0x3d0 lib/debugobjects.c:798
__synchronize_srcu+0x1c3/0x300 kernel/rcu/srcutree.c:1475
wakeup_source_remove drivers/base/power/wakeup.c:201 [inline]
wakeup_source_unregister.part.0+0x12c/0x540 drivers/base/power/wakeup.c:237
wakeup_source_unregister+0x1f/0x30 drivers/base/power/wakeup.c:236
mmc_host_classdev_release+0x42/0x120 drivers/mmc/core/host.c:69
device_release+0xd2/0x270 drivers/base/core.c:2640
kobject_cleanup lib/kobject.c:689 [inline]
kobject_release lib/kobject.c:720 [inline]
kref_put include/linux/kref.h:65 [inline]
kobject_put+0x1f7/0x640 lib/kobject.c:737
put_device+0x1f/0x30 drivers/base/core.c:3884
vub300_delete drivers/mmc/host/vub300.c:379 [inline]
kref_put include/linux/kref.h:65 [inline]
vub300_inactivity_timer_expired drivers/mmc/host/vub300.c:747 [inline]
vub300_inactivity_timer_expired+0x42f/0x550 drivers/mmc/host/vub300.c:742
call_timer_fn+0x198/0x5f0 kernel/time/timer.c:1748
expire_timers kernel/time/timer.c:1799 [inline]
__run_timers+0x757/0xb00 kernel/time/timer.c:2374
__run_timer_base kernel/time/timer.c:2386 [inline]
__run_timer_base kernel/time/timer.c:2378 [inline]
run_timer_base+0x114/0x190 kernel/time/timer.c:2395
run_timer_softirq+0x1a/0x50 kernel/time/timer.c:2405
handle_softirqs+0x1e6/0x9d0 kernel/softirq.c:645
__do_softirq kernel/softirq.c:679 [inline]
invoke_softirq kernel/softirq.c:519 [inline]
__irq_exit_rcu+0x16a/0x210 kernel/softirq.c:758
irq_exit_rcu+0x9/0x30 kernel/softirq.c:775
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1062 [inline]
sysvec_apic_timer_interrupt+0xa3/0xc0 arch/x86/kernel/apic/apic.c:1062
</IRQ>
<TASK>
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674
RIP: 0010:__sanitizer_cov_trace_pc+0x46/0x70 kernel/kcov.c:213
Code: 00 01 00 ff 74 1e f6 c4 01 74 44 a9 00 00 00 0f 75 3d f7 c1 00 00 00 f0 75 35 8b 82 44 17 00 00 85 c0 74 2b 8b 82 18 17 00 00 <83> f8 02 75 20 48 8b 8a 20 17 00 00 8b 92 1c 17 00 00 48 8b 01 48
RSP: 0000:ffffc9002334f5d8 EFLAGS: 00000246
RAX: 0000000000000000 RBX: ffffc9002334f6c0 RCX: 0000000000000000
RDX: ffff888073702580 RSI: ffffffff8bd06124 RDI: ffff888073702580
RBP: 0000000000002a3b R08: 0000000000000006 R09: 0000000000002a3b
R10: fffffffffffffffe R11: 0000000000000001 R12: fffffffffffffffe
R13: ffff888050b7a680 R14: 0000000000000000 R15: dffffc0000000000
xas_find+0xc4/0x8e0 lib/xarray.c:1408
find_get_entry mm/filemap.c:2085 [inline]
find_lock_entries+0x176/0x1190 mm/filemap.c:2189
shmem_undo_range+0x212/0x1570 mm/shmem.c:1143
shmem_truncate_range mm/shmem.c:1289 [inline]
shmem_evict_inode+0x3b1/0xca0 mm/shmem.c:1420
evict+0x3c2/0xad0 fs/inode.c:822
iput_final fs/inode.c:2014 [inline]
iput.part.0+0x989/0x1050 fs/inode.c:2063
iput+0x35/0x40 fs/inode.c:2029
filename_unlinkat+0x466/0x730 fs/namei.c:5752
__do_sys_unlink fs/namei.c:5783 [inline]
__se_sys_unlink fs/namei.c:5780 [inline]
__ia32_sys_unlink+0x45/0x60 fs/namei.c:5780
do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:79 [inline]
__do_fast_syscall_32+0x13a/0x8b0 arch/x86/entry/syscall_32.c:291
do_fast_syscall_32+0x32/0x70 arch/x86/entry/syscall_32.c:316
entry_SYSENTER_compat_after_hwframe+0x84/0x8e
RIP: 0023:0xf7f95fec
Code: d2 74 05 c1 e8 0c 89 02 8b 5d fc 31 c0 c9 c3 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 0f 1f 00 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 2e 8d b4 26 00 00 00 00 8d b4 26 00 00 00 00 58 b8
RSP: 002b:00000000ffb7b7c8 EFLAGS: 00000292
ORIG_RAX: 000000000000000a
RAX: ffffffffffffffda RBX: 00000000ffb7b870 RCX: 0000000000008000
RDX: 00000000f741aff4 RSI: 0000000000000000 RDI: 00000000ffb7c904
RBP: 00000000ffb7b870 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
</TASK>
----------------
Code disassembly (best guess):
0: 00 01 add %al,(%rcx)
2: 00 ff add %bh,%bh
4: 74 1e je 0x24
6: f6 c4 01 test $0x1,%ah
9: 74 44 je 0x4f
b: a9 00 00 00 0f test $0xf000000,%eax
10: 75 3d jne 0x4f
12: f7 c1 00 00 00 f0 test $0xf0000000,%ecx
18: 75 35 jne 0x4f
1a: 8b 82 44 17 00 00 mov 0x1744(%rdx),%eax
20: 85 c0 test %eax,%eax
22: 74 2b je 0x4f
24: 8b 82 18 17 00 00 mov 0x1718(%rdx),%eax
* 2a: 83 f8 02 cmp $0x2,%eax <-- trapping instruction
2d: 75 20 jne 0x4f
2f: 48 8b 8a 20 17 00 00 mov 0x1720(%rdx),%rcx
36: 8b 92 1c 17 00 00 mov 0x171c(%rdx),%edx
3c: 48 8b 01 mov (%rcx),%rax
3f: 48 rex.W
* Struck through repros no longer work on HEAD.