syzbot


BUG: workqueue leaked atomic, lock or RCU: syz.NUM.NUM[NUM]

Status: moderation: reported on 2024/11/15 10:49
Subsystems: usb
[Documentation on labels]
Reported-by: syzbot+7bd4b511ac5ad9ba9a40@syzkaller.appspotmail.com
First crash: 6d14h, last: 6d14h

Sample crash report:
BUG: workqueue leaked atomic, lock or RCU: syz.0.12579[32022]
     preempt=0x00000101 lock=2->0 RCU=0->0 workfn=usb_giveback_urb_bh
INFO: lockdep is turned off.
CPU: 1 UID: 0 PID: 32022 Comm: syz.0.12579 Not tainted 6.12.0-rc7-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/30/2024
Call Trace:
 <IRQ>
 __dump_stack lib/dump_stack.c:94 [inline]
 dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120
 process_one_work kernel/workqueue.c:3250 [inline]
 process_scheduled_works+0x1158/0x1850 kernel/workqueue.c:3310
 bh_worker+0x2a5/0x620 kernel/workqueue.c:3570
 tasklet_action+0xc/0x70 kernel/softirq.c:809
 handle_softirqs+0x2c5/0x980 kernel/softirq.c:554
 __do_softirq kernel/softirq.c:588 [inline]
 invoke_softirq kernel/softirq.c:428 [inline]
 __irq_exit_rcu+0xf4/0x1c0 kernel/softirq.c:637
 irq_exit_rcu+0x9/0x30 kernel/softirq.c:649
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1049 [inline]
 sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1049
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702
RIP: 0010:__raw_spin_unlock_irq include/linux/spinlock_api_smp.h:160 [inline]
RIP: 0010:_raw_spin_unlock_irq+0x29/0x50 kernel/locking/spinlock.c:202
Code: 90 f3 0f 1e fa 53 48 89 fb 48 83 c7 18 48 8b 74 24 08 e8 4a cc a7 f5 48 89 df e8 62 12 a9 f5 e8 ed fe d3 f5 fb bf 01 00 00 00 <e8> e2 8d 9a f5 65 8b 05 c3 35 3b 74 85 c0 74 06 5b c3 cc cc cc cc
RSP: 0018:ffffc9000c44f330 EFLAGS: 00000286

RAX: 6aa3b01f9c4e4100 RBX: ffffffff8f595820 RCX: ffffffff8170bf4a
RDX: dffffc0000000000 RSI: ffffffff8c0acaa0 RDI: 0000000000000001
RBP: ffffc9000c44f4b0 R08: ffffffff94298927 R09: 1ffffffff2853124
R10: dffffc0000000000 R11: fffffbfff2853125 R12: 0000000000000000
R13: dffffc0000000000 R14: ffff888145365000 R15: ffff88802179d100
 spin_unlock_irq include/linux/spinlock.h:401 [inline]
 rh_call_control drivers/usb/core/hcd.c:712 [inline]
 rh_urb_enqueue drivers/usb/core/hcd.c:821 [inline]
 usb_hcd_submit_urb+0xaaf/0x1e80 drivers/usb/core/hcd.c:1529
 usb_start_wait_urb+0x113/0x520 drivers/usb/core/message.c:59
 usb_internal_control_msg drivers/usb/core/message.c:103 [inline]
 usb_control_msg+0x2b1/0x4c0 drivers/usb/core/message.c:154
 usb_port_resume+0x49e/0x2210
 usb_generic_driver_resume+0x4d/0x90 drivers/usb/core/generic.c:321
 usb_resume_device drivers/usb/core/driver.c:1309 [inline]
 usb_resume_both+0x345/0xad0 drivers/usb/core/driver.c:1533
 __rpm_callback+0x2df/0x790 drivers/base/power/runtime.c:394
 rpm_callback drivers/base/power/runtime.c:448 [inline]
 rpm_resume+0xfca/0x1670 drivers/base/power/runtime.c:914
 rpm_resume+0x8fe/0x1670 drivers/base/power/runtime.c:892
 __pm_runtime_resume+0x120/0x180 drivers/base/power/runtime.c:1172
 pm_runtime_resume_and_get include/linux/pm_runtime.h:430 [inline]
 usb_autopm_get_interface+0x22/0xf0 drivers/usb/core/driver.c:1833
 wdm_manage_power+0x1c/0xa0 drivers/usb/class/cdc-wdm.c:1134
 wdm_release+0x20f/0x460 drivers/usb/class/cdc-wdm.c:779
 __fput+0x23f/0x880 fs/file_table.c:431
 task_work_run+0x24f/0x310 kernel/task_work.c:239
 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
 exit_to_user_mode_loop kernel/entry/common.c:114 [inline]
 exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline]
 __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
 syscall_exit_to_user_mode+0x168/0x370 kernel/entry/common.c:218
 do_syscall_64+0x100/0x230 arch/x86/entry/common.c:89
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f3b40f7e719
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fff6da452c8 EFLAGS: 00000246 ORIG_RAX: 00000000000001b4
RAX: 0000000000000000 RBX: 00007f3b41137a80 RCX: 00007f3b40f7e719
RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000003
RBP: 00007f3b41137a80 R08: 0000000000000006 R09: 00007fff6da455bf
R10: 00000000005eadf4 R11: 0000000000000246 R12: 00000000000a3986
R13: 00007fff6da453d0 R14: 0000000000000032 R15: ffffffffffffffff
 </TASK>
----------------
Code disassembly (best guess):
   0:	90                   	nop
   1:	f3 0f 1e fa          	endbr64
   5:	53                   	push   %rbx
   6:	48 89 fb             	mov    %rdi,%rbx
   9:	48 83 c7 18          	add    $0x18,%rdi
   d:	48 8b 74 24 08       	mov    0x8(%rsp),%rsi
  12:	e8 4a cc a7 f5       	call   0xf5a7cc61
  17:	48 89 df             	mov    %rbx,%rdi
  1a:	e8 62 12 a9 f5       	call   0xf5a91281
  1f:	e8 ed fe d3 f5       	call   0xf5d3ff11
  24:	fb                   	sti
  25:	bf 01 00 00 00       	mov    $0x1,%edi
* 2a:	e8 e2 8d 9a f5       	call   0xf59a8e11 <-- trapping instruction
  2f:	65 8b 05 c3 35 3b 74 	mov    %gs:0x743b35c3(%rip),%eax        # 0x743b35f9
  36:	85 c0                	test   %eax,%eax
  38:	74 06                	je     0x40
  3a:	5b                   	pop    %rbx
  3b:	c3                   	ret
  3c:	cc                   	int3
  3d:	cc                   	int3
  3e:	cc                   	int3
  3f:	cc                   	int3

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/11/11 10:44 upstream 2d5404caa8c7 97fe5517 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-smack-root BUG: workqueue leaked atomic, lock or RCU: syz.NUM.NUM[NUM]
* Struck through repros no longer work on HEAD.