syzbot


BUG: workqueue leaked atomic, lock or RCU: kworker/NUM:NUM[NUM]

Status: upstream: reported on 2024/10/21 08:36
Subsystems: usb media
[Documentation on labels]
Reported-by: syzbot+21814e89fd126bbfb79c@syzkaller.appspotmail.com
First crash: 168d, last: 72d
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] [kernel?] BUG: workqueue leaked atomic, lock or RCU: kworker/NUM:NUM[NUM] 0 (1) 2024/10/21 08:36

Sample crash report:
BUG: workqueue leaked atomic, lock or RCU: kworker/0:0[8]
     preempt=0x00000101 lock=5->0 RCU=0->0 workfn=usb_giveback_urb_bh
INFO: lockdep is turned off.
CPU: 0 UID: 0 PID: 8 Comm: kworker/0:0 Not tainted 6.13.0-rc4-syzkaller-00069-g8379578b11d5 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024
Workqueue: usb_hub_wq hub_event

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+0x1157/0x1840 kernel/workqueue.c:3310
 bh_worker+0x2a5/0x620 kernel/workqueue.c:3570
 tasklet_action+0xc/0x70 kernel/softirq.c:836
 handle_softirqs+0x2d4/0x9b0 kernel/softirq.c:561
 __do_softirq kernel/softirq.c:595 [inline]
 invoke_softirq kernel/softirq.c:435 [inline]
 __irq_exit_rcu+0xf7/0x220 kernel/softirq.c:662
 irq_exit_rcu+0x9/0x30 kernel/softirq.c:678
 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_irqrestore include/linux/spinlock_api_smp.h:152 [inline]
RIP: 0010:_raw_spin_unlock_irqrestore+0xd8/0x140 kernel/locking/spinlock.c:194
Code: 9c 8f 44 24 20 42 80 3c 23 00 74 08 4c 89 f7 e8 8e 70 3a f6 f6 44 24 21 02 75 52 41 f7 c7 00 02 00 00 74 01 fb bf 01 00 00 00 <e8> 13 17 a2 f5 65 8b 05 74 6a 38 74 85 c0 74 43 48 c7 04 24 0e 36
RSP: 0018:ffffc900000d7020 EFLAGS: 00000206

RAX: f8afb71eb5557900 RBX: 1ffff9200001ae08 RCX: ffffffff817b279a
RDX: dffffc0000000000 RSI: ffffffff8c0a98e0 RDI: 0000000000000001
RBP: ffffc900000d70b0 R08: ffffffff942a4907 R09: 1ffffffff2854920
R10: dffffc0000000000 R11: fffffbfff2854921 R12: dffffc0000000000
R13: 1ffff9200001ae04 R14: ffffc900000d7040 R15: 0000000000000246
 debug_object_assert_init+0x2dd/0x4b0 lib/debugobjects.c:1009
 debug_timer_assert_init kernel/time/timer.c:845 [inline]
 debug_assert_init kernel/time/timer.c:890 [inline]
 __mod_timer+0x10d/0xeb0 kernel/time/timer.c:1071
 schedule_timeout+0x155/0x290 kernel/time/sleep_timeout.c:98
 do_wait_for_common kernel/sched/completion.c:95 [inline]
 __wait_for_common kernel/sched/completion.c:116 [inline]
 wait_for_common kernel/sched/completion.c:127 [inline]
 wait_for_completion_timeout+0x329/0x640 kernel/sched/completion.c:167
 usb_start_wait_urb+0x16f/0x520 drivers/usb/core/message.c:64
 usb_internal_control_msg drivers/usb/core/message.c:103 [inline]
 usb_control_msg+0x2b1/0x4c0 drivers/usb/core/message.c:154
 get_port_status drivers/usb/core/hub.c:604 [inline]
 hub_ext_port_status+0x11a/0x840 drivers/usb/core/hub.c:621
 usb_hub_port_status drivers/usb/core/hub.c:671 [inline]
 port_event drivers/usb/core/hub.c:5714 [inline]
 hub_event+0x973/0x5150 drivers/usb/core/hub.c:5903
 process_one_work kernel/workqueue.c:3229 [inline]
 process_scheduled_works+0xa66/0x1840 kernel/workqueue.c:3310
 worker_thread+0x870/0xd30 kernel/workqueue.c:3391
 kthread+0x2f0/0x390 kernel/kthread.c:389
 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 </TASK>
ip6_tunnel: ip6gretap0 xmit: Local address not yet configured!
----------------
Code disassembly (best guess):
   0:	9c                   	pushf
   1:	8f 44 24 20          	pop    0x20(%rsp)
   5:	42 80 3c 23 00       	cmpb   $0x0,(%rbx,%r12,1)
   a:	74 08                	je     0x14
   c:	4c 89 f7             	mov    %r14,%rdi
   f:	e8 8e 70 3a f6       	call   0xf63a70a2
  14:	f6 44 24 21 02       	testb  $0x2,0x21(%rsp)
  19:	75 52                	jne    0x6d
  1b:	41 f7 c7 00 02 00 00 	test   $0x200,%r15d
  22:	74 01                	je     0x25
  24:	fb                   	sti
  25:	bf 01 00 00 00       	mov    $0x1,%edi
* 2a:	e8 13 17 a2 f5       	call   0xf5a21742 <-- trapping instruction
  2f:	65 8b 05 74 6a 38 74 	mov    %gs:0x74386a74(%rip),%eax        # 0x74386aaa
  36:	85 c0                	test   %eax,%eax
  38:	74 43                	je     0x7d
  3a:	48                   	rex.W
  3b:	c7                   	.byte 0xc7
  3c:	04 24                	add    $0x24,%al
  3e:	0e                   	(bad)
  3f:	36                   	ss

Crashes (5):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/12/28 01:19 upstream 8379578b11d5 d3ccff63 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce BUG: workqueue leaked atomic, lock or RCU: kworker/NUM:NUM[NUM]
2024/10/10 20:54 net-next 09cf85ef183a 8fbfc0c8 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-net-kasan-gce BUG: workqueue leaked atomic, lock or RCU: kworker/NUM:NUM[NUM]
2025/01/14 17:34 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing 26a6cc10f19a f310a27d .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb BUG: workqueue leaked atomic, lock or RCU: kworker/NUM:NUM[NUM]
2025/01/08 10:24 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing f1a2241778d9 f3558dbf .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb BUG: workqueue leaked atomic, lock or RCU: kworker/NUM:NUM[NUM]
2024/12/16 07:55 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-testing d8d936c51388 7cbfbb3a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-usb BUG: workqueue leaked atomic, lock or RCU: kworker/NUM:NUM[NUM]
* Struck through repros no longer work on HEAD.