[v6.6] WARNING in cm109_urb_irq_callback/usb_submit_urb

2 views
Skip to first unread message

syzbot

unread,
Jun 21, 2025, 11:53:30 AM6/21/25
to syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 6282921b6825 Linux 6.6.94
git tree: linux-6.6.y
console output: https://syzkaller.appspot.com/x/log.txt?x=15f356bc580000
kernel config: https://syzkaller.appspot.com/x/.config?x=96da6b2210cda427
dashboard link: https://syzkaller.appspot.com/bug?extid=c10d84bda7c28bb6c753
compiler: Debian clang version 20.1.6 (++20250514063057+1e4d39e07757-1~exp1~20250514183223.118), Debian LLD 20.1.6

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image: https://storage.googleapis.com/syzbot-assets/a3bf0d8e22b2/disk-6282921b.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/d1d442f782d0/vmlinux-6282921b.xz
kernel image: https://storage.googleapis.com/syzbot-assets/a8378f4b7e1b/bzImage-6282921b.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+c10d84...@syzkaller.appspotmail.com

cm109 4-1:0.8: cm109_urb_irq_callback: urb status -71
------------[ cut here ]------------
URB ffff888025b09f00 submitted while active
WARNING: CPU: 0 PID: 13766 at drivers/usb/core/urb.c:379 usb_submit_urb+0xf95/0x1850 drivers/usb/core/urb.c:379
Modules linked in:
CPU: 0 PID: 13766 Comm: syz.3.2403 Not tainted 6.6.94-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
RIP: 0010:usb_submit_urb+0xf95/0x1850 drivers/usb/core/urb.c:379
Code: 04 00 00 eb 58 e8 7b fa 35 fb e9 1a f1 ff ff e8 71 fa 35 fb c6 05 9f c0 e4 07 01 48 c7 c7 80 b3 4a 8b 48 89 de e8 5b 5f 00 fb <0f> 0b e9 e5 f0 ff ff e8 4f fa 35 fb eb 11 e8 48 fa 35 fb bd 80 00
RSP: 0018:ffffc90000007860 EFLAGS: 00010046
RAX: 6923e538ba004600 RBX: ffff888025b09f00 RCX: 0000000000040000
RDX: ffffc90002111000 RSI: 000000000000634d RDI: 000000000000634e
RBP: 000000000000000f R08: ffff8880b8e28c13 R09: 1ffff110171c5182
R10: dffffc0000000000 R11: ffffed10171c5183 R12: 1ffff1100315a70a
R13: dffffc0000000000 R14: ffff888025b09f08 R15: 0000000000000820
FS: 0000000000000000(0000) GS:ffff8880b8e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f80ffa90f98 CR3: 000000005da7c000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
cm109_urb_irq_callback+0x72c/0xc90 drivers/input/misc/cm109.c:422
__usb_hcd_giveback_urb+0x35f/0x520 drivers/usb/core/hcd.c:1650
dummy_timer+0x8a3/0x31b0 drivers/usb/gadget/udc/dummy_hcd.c:1993
__run_hrtimer kernel/time/hrtimer.c:1755 [inline]
__hrtimer_run_queues+0x51e/0xc40 kernel/time/hrtimer.c:1819
hrtimer_run_softirq+0x187/0x2b0 kernel/time/hrtimer.c:1836
handle_softirqs+0x280/0x820 kernel/softirq.c:578
__do_softirq kernel/softirq.c:612 [inline]
invoke_softirq kernel/softirq.c:452 [inline]
__irq_exit_rcu+0xc7/0x190 kernel/softirq.c:661
irq_exit_rcu+0x9/0x20 kernel/softirq.c:673
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1088 [inline]
sysvec_apic_timer_interrupt+0xa4/0xc0 arch/x86/kernel/apic/apic.c:1088
</IRQ>
<TASK>
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:687
RIP: 0010:get_current arch/x86/include/asm/current.h:41 [inline]
RIP: 0010:__sanitizer_cov_trace_pc+0x8/0x60 kernel/kcov.c:215
Code: 00 00 f3 0f 1e fa 53 48 89 fb e8 13 00 00 00 48 8b 3d 8c 17 c4 0c 48 89 de 5b e9 83 d6 57 00 cc cc cc f3 0f 1e fa 48 8b 04 24 <65> 48 8b 0d 20 24 7e 7e 65 8b 15 21 24 7e 7e 81 e2 00 01 ff 00 74
RSP: 0018:ffffc90004dbeee8 EFLAGS: 00000246
RAX: ffffffff813a9b13 RBX: ffffffff8ecbc39c RCX: 0000000000000003
RDX: ffffffff813a9a02 RSI: ffffffff8cb9e0e0 RDI: 0000000000000005
RBP: ffffc90004dbf078 R08: ffff88802f1c1e00 R09: 0000000000000008
R10: 0000000000000009 R11: 0000000000000000 R12: ffffc90004dbf028
R13: dffffc0000000000 R14: 0000000000000005 R15: ffffffff8ecbc3a0
unwind_next_frame+0x853/0x2970 arch/x86/kernel/unwind_orc.c:517
__unwind_start+0x66a/0x7e0 arch/x86/kernel/unwind_orc.c:760
unwind_start arch/x86/include/asm/unwind.h:64 [inline]
arch_stack_walk+0xf8/0x190 arch/x86/kernel/stacktrace.c:24
stack_trace_save+0x9c/0xe0 kernel/stacktrace.c:122
save_stack+0xf7/0x1f0 mm/page_owner.c:128
__set_page_owner+0x1d/0x60 mm/page_owner.c:192
set_page_owner include/linux/page_owner.h:31 [inline]
post_alloc_hook+0x1cd/0x210 mm/page_alloc.c:1554
prep_new_page mm/page_alloc.c:1561 [inline]
get_page_from_freelist+0x195c/0x19f0 mm/page_alloc.c:3191
__alloc_pages+0x1e3/0x460 mm/page_alloc.c:4457
alloc_slab_page+0x5d/0x170 mm/slub.c:1876
allocate_slab mm/slub.c:2023 [inline]
new_slab+0x87/0x2e0 mm/slub.c:2076
___slab_alloc+0xc6d/0x12f0 mm/slub.c:3230
__slab_alloc mm/slub.c:3329 [inline]
__slab_alloc_node mm/slub.c:3382 [inline]
slab_alloc_node mm/slub.c:3475 [inline]
kmem_cache_alloc_node+0x1ea/0x330 mm/slub.c:3530
__alloc_skb+0x108/0x2c0 net/core/skbuff.c:640
alloc_skb include/linux/skbuff.h:1284 [inline]
alloc_uevent_skb+0x7d/0x230 lib/kobject_uevent.c:290
uevent_net_broadcast_untagged lib/kobject_uevent.c:326 [inline]
kobject_uevent_net_broadcast+0x2e6/0x530 lib/kobject_uevent.c:409
kobject_uevent_env+0x550/0x8c0 lib/kobject_uevent.c:608
device_remove drivers/base/dd.c:567 [inline]
__device_release_driver drivers/base/dd.c:1272 [inline]
device_release_driver_internal+0x468/0x7a0 drivers/base/dd.c:1295
driver_detach+0x1f3/0x2d0 drivers/base/dd.c:1358
bus_remove_driver+0x221/0x2f0 drivers/base/bus.c:744
usb_gadget_unregister_driver+0x4e/0x70 drivers/usb/gadget/udc/core.c:1716
raw_release+0xda/0x260 drivers/usb/gadget/legacy/raw_gadget.c:415
__fput+0x234/0x970 fs/file_table.c:384
task_work_run+0x1ce/0x250 kernel/task_work.c:239
exit_task_work include/linux/task_work.h:43 [inline]
do_exit+0x903/0x23c0 kernel/exit.c:874
do_group_exit+0x21b/0x2d0 kernel/exit.c:1023
get_signal+0x12fc/0x1400 kernel/signal.c:2902
arch_do_signal_or_restart+0x96/0x780 arch/x86/kernel/signal.c:310
exit_to_user_mode_loop+0x70/0x110 kernel/entry/common.c:174
exit_to_user_mode_prepare+0xb1/0x140 kernel/entry/common.c:210
__syscall_exit_to_user_mode_work kernel/entry/common.c:291 [inline]
syscall_exit_to_user_mode+0x1a/0x50 kernel/entry/common.c:302
do_syscall_64+0x61/0xb0 arch/x86/entry/common.c:87
entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7fb91e18e929
Code: Unable to access opcode bytes at 0x7fb91e18e8ff.
RSP: 002b:00007fb91ef5f038 EFLAGS: 00000246 ORIG_RAX: 0000000000000110
RAX: fffffffffffffffc RBX: 00007fb91e3b5fa0 RCX: 00007fb91e18e929
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000062040200
RBP: 00007fb91e210b39 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 0000000000000000 R14: 00007fb91e3b5fa0 R15: 00007ffc1185b498
</TASK>
----------------
Code disassembly (best guess):
0: 00 00 add %al,(%rax)
2: f3 0f 1e fa endbr64
6: 53 push %rbx
7: 48 89 fb mov %rdi,%rbx
a: e8 13 00 00 00 call 0x22
f: 48 8b 3d 8c 17 c4 0c mov 0xcc4178c(%rip),%rdi # 0xcc417a2
16: 48 89 de mov %rbx,%rsi
19: 5b pop %rbx
1a: e9 83 d6 57 00 jmp 0x57d6a2
1f: cc int3
20: cc int3
21: cc int3
22: f3 0f 1e fa endbr64
26: 48 8b 04 24 mov (%rsp),%rax
* 2a: 65 48 8b 0d 20 24 7e mov %gs:0x7e7e2420(%rip),%rcx # 0x7e7e2452 <-- trapping instruction
31: 7e
32: 65 8b 15 21 24 7e 7e mov %gs:0x7e7e2421(%rip),%edx # 0x7e7e245a
39: 81 e2 00 01 ff 00 and $0xff0100,%edx
3f: 74 .byte 0x74


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

syzbot

unread,
Jun 22, 2025, 4:27:28 AM6/22/25
to syzkaller...@googlegroups.com
syzbot has found a reproducer for the following issue on:

HEAD commit: 6282921b6825 Linux 6.6.94
git tree: linux-6.6.y
console output: https://syzkaller.appspot.com/x/log.txt?x=16fe1b0c580000
kernel config: https://syzkaller.appspot.com/x/.config?x=96da6b2210cda427
dashboard link: https://syzkaller.appspot.com/bug?extid=c10d84bda7c28bb6c753
compiler: Debian clang version 20.1.6 (++20250514063057+1e4d39e07757-1~exp1~20250514183223.118), Debian LLD 20.1.6
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=1792cdd4580000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=12940b0c580000
cm109 1-1:0.8: cm109_urb_irq_callback: urb status -71
------------[ cut here ]------------
URB ffff88801abe5600 submitted while active
WARNING: CPU: 0 PID: 5769 at drivers/usb/core/urb.c:379 usb_submit_urb+0xf95/0x1850 drivers/usb/core/urb.c:379
Modules linked in:
CPU: 0 PID: 5769 Comm: syz-executor184 Not tainted 6.6.94-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
RIP: 0010:usb_submit_urb+0xf95/0x1850 drivers/usb/core/urb.c:379
Code: 04 00 00 eb 58 e8 7b fa 35 fb e9 1a f1 ff ff e8 71 fa 35 fb c6 05 9f c0 e4 07 01 48 c7 c7 80 b3 4a 8b 48 89 de e8 5b 5f 00 fb <0f> 0b e9 e5 f0 ff ff e8 4f fa 35 fb eb 11 e8 48 fa 35 fb bd 80 00
RSP: 0018:ffffc90000007860 EFLAGS: 00010046
RAX: 7a9d450822291100 RBX: ffff88801abe5600 RCX: ffff88802705da00
RDX: 0000000000000100 RSI: 0000000000000000 RDI: 0000000000000002
RBP: 000000000000000f R08: ffff8880b8e28c13 R09: 1ffff110171c5182
R10: dffffc0000000000 R11: ffffed10171c5183 R12: 1ffff110046bd10a
R13: dffffc0000000000 R14: ffff88801abe5608 R15: 0000000000000820
FS: 0000000000000000(0000) GS:ffff8880b8e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f12bdfc6b38 CR3: 000000000cb30000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<IRQ>
cm109_urb_irq_callback+0x72c/0xc90 drivers/input/misc/cm109.c:422
__usb_hcd_giveback_urb+0x35f/0x520 drivers/usb/core/hcd.c:1650
dummy_timer+0x8a3/0x31b0 drivers/usb/gadget/udc/dummy_hcd.c:1993
__run_hrtimer kernel/time/hrtimer.c:1755 [inline]
__hrtimer_run_queues+0x51e/0xc40 kernel/time/hrtimer.c:1819
hrtimer_run_softirq+0x187/0x2b0 kernel/time/hrtimer.c:1836
handle_softirqs+0x280/0x820 kernel/softirq.c:578
__do_softirq kernel/softirq.c:612 [inline]
invoke_softirq kernel/softirq.c:452 [inline]
__irq_exit_rcu+0xc7/0x190 kernel/softirq.c:661
irq_exit_rcu+0x9/0x20 kernel/softirq.c:673
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1088 [inline]
sysvec_apic_timer_interrupt+0xa4/0xc0 arch/x86/kernel/apic/apic.c:1088
</IRQ>
<TASK>
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:687
RIP: 0010:__raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:152 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0xa9/0x110 kernel/locking/spinlock.c:194
Code: 74 05 e8 7a 26 1c f7 48 c7 44 24 20 00 00 00 00 9c 8f 44 24 20 f6 44 24 21 02 75 4b f7 c3 00 02 00 00 74 01 fb bf 01 00 00 00 <e8> 82 91 eb f6 65 8b 05 93 e7 93 75 85 c0 74 3c 48 c7 04 24 0e 36
RSP: 0018:ffffc900044bf880 EFLAGS: 00000206
RAX: 7a9d450822291100 RBX: 0000000000000a02 RCX: 7a9d450822291100
RDX: dffffc0000000000 RSI: ffffffff8aaab2c0 RDI: 0000000000000001
RBP: ffffc900044bf910 R08: ffffffff90d855ef R09: 1ffffffff21b0abd
R10: dffffc0000000000 R11: fffffbfff21b0abe R12: dffffc0000000000
R13: ffff8881427d2d00 R14: ffffffff8d8c4b40 R15: 1ffff92000897f10
spin_unlock_irqrestore include/linux/spinlock.h:406 [inline]
usb_hcd_poll_rh_status+0x3fd/0x600 drivers/usb/core/hcd.c:764
dummy_pullup+0x198/0x200 drivers/usb/gadget/udc/dummy_hcd.c:927
usb_gadget_disconnect_locked+0x13d/0x470 drivers/usb/gadget/udc/core.c:777
gadget_unbind_driver+0xc4/0x420 drivers/usb/gadget/udc/core.c:1650
device_remove drivers/base/dd.c:567 [inline]
__device_release_driver drivers/base/dd.c:1272 [inline]
device_release_driver_internal+0x468/0x7a0 drivers/base/dd.c:1295
driver_detach+0x1f3/0x2d0 drivers/base/dd.c:1358
bus_remove_driver+0x221/0x2f0 drivers/base/bus.c:744
usb_gadget_unregister_driver+0x4e/0x70 drivers/usb/gadget/udc/core.c:1716
raw_release+0xda/0x260 drivers/usb/gadget/legacy/raw_gadget.c:415
__fput+0x234/0x970 fs/file_table.c:384
task_work_run+0x1ce/0x250 kernel/task_work.c:239
exit_task_work include/linux/task_work.h:43 [inline]
do_exit+0x903/0x23c0 kernel/exit.c:874
do_group_exit+0x21b/0x2d0 kernel/exit.c:1023
__do_sys_exit_group kernel/exit.c:1034 [inline]
__se_sys_exit_group kernel/exit.c:1032 [inline]
__x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1032
do_syscall_x64 arch/x86/entry/common.c:51 [inline]
do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:81
entry_SYSCALL_64_after_hwframe+0x68/0xd2
RIP: 0033:0x7f12bdf7c849
Code: Unable to access opcode bytes at 0x7f12bdf7c81f.
RSP: 002b:00007ffc4967b368 EFLAGS: 00000246 ORIG_RAX: 00000000000000e7
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f12bdf7c849
RDX: 000000000000003c RSI: 00000000000000e7 RDI: 0000000000000000
RBP: 00007f12bdff8390 R08: ffffffffffffffb8 R09: 0000000000000006
R10: 00007ffc4967b0d7 R11: 0000000000000246 R12: 00007f12bdff8390
R13: 0000000000000000 R14: 00007f12bdffc0a0 R15: 00007f12bdf4aae0
</TASK>
----------------
Code disassembly (best guess):
0: 74 05 je 0x7
2: e8 7a 26 1c f7 call 0xf71c2681
7: 48 c7 44 24 20 00 00 movq $0x0,0x20(%rsp)
e: 00 00
10: 9c pushf
11: 8f 44 24 20 pop 0x20(%rsp)
15: f6 44 24 21 02 testb $0x2,0x21(%rsp)
1a: 75 4b jne 0x67
1c: f7 c3 00 02 00 00 test $0x200,%ebx
22: 74 01 je 0x25
24: fb sti
25: bf 01 00 00 00 mov $0x1,%edi
* 2a: e8 82 91 eb f6 call 0xf6eb91b1 <-- trapping instruction
2f: 65 8b 05 93 e7 93 75 mov %gs:0x7593e793(%rip),%eax # 0x7593e7c9
36: 85 c0 test %eax,%eax
38: 74 3c je 0x76
3a: 48 rex.W
3b: c7 .byte 0xc7
3c: 04 24 add $0x24,%al
3e: 0e (bad)
3f: 36 ss


---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
Reply all
Reply to author
Forward
0 new messages