syzbot
BUG: sleeping function called from invalid context in mmc_free_host
Status:
upstream: reported on 2026/09/24 13:52
Reported-by: syzbot+ab0b597d958a9dcaecbd@syzkaller.appspotmail.com
First crash: 6h32m, last: 6h32m
Sample crash report:
BUG: sleeping function called from invalid context at kernel/workqueue.c:3013
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 4279, name: syz-executor
preempt_count: 103, expected: 0
RCU nest depth: 0, expected: 0
INFO: lockdep is turned off.
Preemption disabled at:
[<0000000000000000>] 0x0
CPU: 1 PID: 4279 Comm: syz-executor Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/16/2026
Call Trace:
<IRQ>
dump_stack_lvl+0x188/0x24e lib/dump_stack.c:106
__might_resched+0x489/0x5f0 kernel/sched/core.c:9970
start_flush_work kernel/workqueue.c:3013 [inline]
__flush_work+0x142/0xac0 kernel/workqueue.c:3075
__cancel_work_timer+0x3f4/0x560 kernel/workqueue.c:3163
mmc_free_host+0x15/0x30 drivers/mmc/core/host.c:672
call_timer_fn+0x1ac/0x670 kernel/time/timer.c:1701
expire_timers kernel/time/timer.c:1752 [inline]
__run_timers+0x56c/0x810 kernel/time/timer.c:2023
run_timer_softirq+0x63/0xf0 kernel/time/timer.c:2036
handle_softirqs+0x291/0x910 kernel/softirq.c:596
__do_softirq kernel/softirq.c:630 [inline]
invoke_softirq kernel/softirq.c:470 [inline]
__irq_exit_rcu+0x13b/0x230 kernel/softirq.c:679
irq_exit_rcu+0x5/0x20 kernel/softirq.c:691
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1118 [inline]
sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1118
</IRQ>
<TASK>
asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:691
RIP: 0010:lock_acquire+0x225/0x4a0 kernel/locking/lockdep.c:5682
Code: f7 84 24 80 00 00 00 00 02 00 00 43 c6 44 3d 04 f8 0f 85 f0 00 00 00 41 f7 c6 00 02 00 00 74 01 fb 48 c7 44 24 60 0e 36 e0 45 <4b> c7 44 3d 00 00 00 00 00 43 c7 44 3d 08 00 00 00 00 65 48 8b 04
RSP: 0018:ffffc900041c73c0 EFLAGS: 00000206
RAX: 0000000000000001 RBX: 0000000000000000 RCX: 9fc8f1fd6f40cb00
RDX: 0000000000000000 RSI: ffffffff8a8c2a20 RDI: ffffffff8adf68a0
RBP: ffffc900041c74c8 R08: dffffc0000000000 R09: 1ffffffff2161e48
R10: dffffc0000000000 R11: fffffbfff2161e49 R12: 0000000000000001
R13: 1ffff92000838e84 R14: 0000000000000246 R15: dffffc0000000000
rcu_lock_acquire include/linux/rcupdate.h:350 [inline]
rcu_read_lock_sched include/linux/rcupdate.h:883 [inline]
pfn_valid+0xe9/0x420 include/linux/mmzone.h:1857
page_table_check_set+0x25/0x6d0 mm/page_table_check.c:108
page_table_check_pte_set include/linux/page_table_check.h:83 [inline]
set_pte_at arch/x86/include/asm/pgtable.h:1009 [inline]
copy_present_pte mm/memory.c:1000 [inline]
copy_pte_range mm/memory.c:1091 [inline]
copy_pmd_range mm/memory.c:1177 [inline]
copy_pud_range mm/memory.c:1214 [inline]
copy_p4d_range mm/memory.c:1238 [inline]
copy_page_range+0x2586/0x3a60 mm/memory.c:1332
dup_mmap kernel/fork.c:703 [inline]
dup_mm kernel/fork.c:1552 [inline]
copy_mm+0xeb0/0x1680 kernel/fork.c:1601
copy_process+0x1952/0x4070 kernel/fork.c:2358
kernel_clone+0x24b/0x900 kernel/fork.c:2765
__do_sys_clone kernel/fork.c:2906 [inline]
__se_sys_clone kernel/fork.c:2890 [inline]
__x64_sys_clone+0x1a7/0x220 kernel/fork.c:2890
do_syscall_x64 arch/x86/entry/common.c:46 [inline]
do_syscall_64+0x4c/0xa0 arch/x86/entry/common.c:76
entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7ffadf1c6bd2
Code: 89 e7 e8 71 8b f7 ff 45 31 c0 31 d2 31 f6 64 48 8b 04 25 10 00 00 00 bf 11 00 20 01 4c 8d 90 d0 02 00 00 b8 38 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 66 89 c5 85 c0 75 3b 64 48 8b 04 25 10 00 00
RSP: 002b:00007fffeb1cca70 EFLAGS: 00000246 ORIG_RAX: 0000000000000038
RAX: ffffffffffffffda RBX: 00007fffeb1cca70 RCX: 00007ffadf1c6bd2
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011
RBP: 00007fffeb1ccbfc R08: 0000000000000000 R09: 0000000000000001
R10: 000055558e0297d0 R11: 0000000000000246 R12: 0000000000000001
R13: 00000000000927c0 R14: 0000000000016b9d R15: 00007fffeb1ccc50
</TASK>
ODEBUG: object ffffc900001e09a0 is NOT on stack ffffc900041c0000, but annotated.
------------[ cut here ]------------
WARNING: CPU: 1 PID: 4279 at lib/debugobjects.c:558 debug_object_is_on_stack lib/debugobjects.c:-1 [inline]
WARNING: CPU: 1 PID: 4279 at lib/debugobjects.c:558 lookup_object_or_alloc lib/debugobjects.c:591 [inline]
WARNING: CPU: 1 PID: 4279 at lib/debugobjects.c:558 __debug_object_init+0x18e/0x440 lib/debugobjects.c:672
Modules linked in:
CPU: 1 PID: 4279 Comm: syz-executor Tainted: G W syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/16/2026
RIP: 0010:debug_object_is_on_stack lib/debugobjects.c:558 [inline]
RIP: 0010:lookup_object_or_alloc lib/debugobjects.c:591 [inline]
RIP: 0010:__debug_object_init+0x18e/0x440 lib/debugobjects.c:672
Code: 24 04 74 2f 41 ff c6 44 89 35 7e 6a dd 12 48 c7 c1 40 71 df 8a 48 c7 c7 a0 71 df 8a 84 c0 48 0f 45 f9 48 89 de e8 f2 b9 0c 06 <0f> 0b eb 05 4c 8b 7c 24 18 4d 8d 65 10 4d 89 e6 49 c1 ee 03 41 0f
RSP: 0018:ffffc900001e0908 EFLAGS: 00010046
RAX: 0000000000000050 RBX: ffffc900001e09a0 RCX: 9fc8f1fd6f40cb00
RDX: 0000000000000100 RSI: 0000000000000104 RDI: 0000000000000000
RBP: dffffc0000000000 R08: ffffffff8e20b46f R09: 1ffffffff1c4168d
R10: dffffc0000000000 R11: fffffbfff1c4168e R12: ffff888030538020
R13: ffff888029dcb230 R14: 0000000000000001 R15: ffffffff8a8d3120
FS: 000055558e029500(0000) GS:ffff8880b8f00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f8e899eb840 CR3: 000000005be8a000 CR4: 00000000003526e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
__synchronize_srcu+0x227/0x350 kernel/rcu/srcutree.c:1241
wakeup_source_remove drivers/base/power/wakeup.c:198 [inline]
wakeup_source_unregister+0x112/0x190 drivers/base/power/wakeup.c:242
mmc_host_classdev_release+0x43/0xf0 drivers/mmc/core/host.c:77
device_release+0x92/0x1c0 drivers/base/core.c:-1
kobject_cleanup lib/kobject.c:681 [inline]
kobject_release lib/kobject.c:712 [inline]
kref_put include/linux/kref.h:65 [inline]
kobject_put+0x217/0x450 lib/kobject.c:729
call_timer_fn+0x1ac/0x670 kernel/time/timer.c:1701
expire_timers kernel/time/timer.c:1752 [inline]
__run_timers+0x56c/0x810 kernel/time/timer.c:2023
run_timer_softirq+0x63/0xf0 kernel/time/timer.c:2036
handle_softirqs+0x291/0x910 kernel/softirq.c:596
__do_softirq kernel/softirq.c:630 [inline]
invoke_softirq kernel/softirq.c:470 [inline]
__irq_exit_rcu+0x13b/0x230 kernel/softirq.c:679
irq_exit_rcu+0x5/0x20 kernel/softirq.c:691
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1118 [inline]
sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1118
</IRQ>
<TASK>
asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:691
RIP: 0010:lock_acquire+0x225/0x4a0 kernel/locking/lockdep.c:5682
Code: f7 84 24 80 00 00 00 00 02 00 00 43 c6 44 3d 04 f8 0f 85 f0 00 00 00 41 f7 c6 00 02 00 00 74 01 fb 48 c7 44 24 60 0e 36 e0 45 <4b> c7 44 3d 00 00 00 00 00 43 c7 44 3d 08 00 00 00 00 65 48 8b 04
RSP: 0018:ffffc900041c73c0 EFLAGS: 00000206
RAX: 0000000000000001 RBX: 0000000000000000 RCX: 9fc8f1fd6f40cb00
RDX: 0000000000000000 RSI: ffffffff8a8c2a20 RDI: ffffffff8adf68a0
RBP: ffffc900041c74c8 R08: dffffc0000000000 R09: 1ffffffff2161e48
R10: dffffc0000000000 R11: fffffbfff2161e49 R12: 0000000000000001
R13: 1ffff92000838e84 R14: 0000000000000246 R15: dffffc0000000000
rcu_lock_acquire include/linux/rcupdate.h:350 [inline]
rcu_read_lock_sched include/linux/rcupdate.h:883 [inline]
pfn_valid+0xe9/0x420 include/linux/mmzone.h:1857
page_table_check_set+0x25/0x6d0 mm/page_table_check.c:108
page_table_check_pte_set include/linux/page_table_check.h:83 [inline]
set_pte_at arch/x86/include/asm/pgtable.h:1009 [inline]
copy_present_pte mm/memory.c:1000 [inline]
copy_pte_range mm/memory.c:1091 [inline]
copy_pmd_range mm/memory.c:1177 [inline]
copy_pud_range mm/memory.c:1214 [inline]
copy_p4d_range mm/memory.c:1238 [inline]
copy_page_range+0x2586/0x3a60 mm/memory.c:1332
dup_mmap kernel/fork.c:703 [inline]
dup_mm kernel/fork.c:1552 [inline]
copy_mm+0xeb0/0x1680 kernel/fork.c:1601
copy_process+0x1952/0x4070 kernel/fork.c:2358
kernel_clone+0x24b/0x900 kernel/fork.c:2765
__do_sys_clone kernel/fork.c:2906 [inline]
__se_sys_clone kernel/fork.c:2890 [inline]
__x64_sys_clone+0x1a7/0x220 kernel/fork.c:2890
do_syscall_x64 arch/x86/entry/common.c:46 [inline]
do_syscall_64+0x4c/0xa0 arch/x86/entry/common.c:76
entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7ffadf1c6bd2
Code: 89 e7 e8 71 8b f7 ff 45 31 c0 31 d2 31 f6 64 48 8b 04 25 10 00 00 00 bf 11 00 20 01 4c 8d 90 d0 02 00 00 b8 38 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 66 89 c5 85 c0 75 3b 64 48 8b 04 25 10 00 00
RSP: 002b:00007fffeb1cca70 EFLAGS: 00000246
ORIG_RAX: 0000000000000038
RAX: ffffffffffffffda RBX: 00007fffeb1cca70 RCX: 00007ffadf1c6bd2
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011
RBP: 00007fffeb1ccbfc R08: 0000000000000000 R09: 0000000000000001
R10: 000055558e0297d0 R11: 0000000000000246 R12: 0000000000000001
R13: 00000000000927c0 R14: 0000000000016b9d R15: 00007fffeb1ccc50
</TASK>
----------------
Code disassembly (best guess):
0: f7 84 24 80 00 00 00 testl $0x200,0x80(%rsp)
7: 00 02 00 00
b: 43 c6 44 3d 04 f8 movb $0xf8,0x4(%r13,%r15,1)
11: 0f 85 f0 00 00 00 jne 0x107
17: 41 f7 c6 00 02 00 00 test $0x200,%r14d
1e: 74 01 je 0x21
20: fb sti
21: 48 c7 44 24 60 0e 36 movq $0x45e0360e,0x60(%rsp)
28: e0 45
* 2a: 4b c7 44 3d 00 00 00 movq $0x0,0x0(%r13,%r15,1) <-- trapping instruction
31: 00 00
33: 43 c7 44 3d 08 00 00 movl $0x0,0x8(%r13,%r15,1)
3a: 00 00
3c: 65 gs
3d: 48 rex.W
3e: 8b .byte 0x8b
3f: 04 .byte 0x4
* Struck through repros no longer work on HEAD.