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
▶ ▼ Similar bugs (2)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream BUG: sleeping function called from invalid context in mmc_free_host prio:high usb mmc 5 syz, C error 6699 36m 49d 1/29 upstream: reported C repro on 2026/08/05 22:45
linux-6.6 BUG: sleeping function called from invalid context in mmc_free_host 5 syz, C 372 4d14h 50d 0/2 upstream: reported C repro on 2026/08/04 22:46

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

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/09/24 13:52 linux-6.1.y 1a8763b93150 0281b448 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan BUG: sleeping function called from invalid context in mmc_free_host
* Struck through repros no longer work on HEAD.