============================================
WARNING: possible recursive locking detected
syzkaller #0 Tainted: G L
--------------------------------------------
kworker/0:4/15296 is trying to acquire lock:
ffff888078bf2f30 (&hsr->seqnr_lock){+.-.}-{3:3}, at: spin_lock_bh include/linux/spinlock.h:356 [inline]
ffff888078bf2f30 (&hsr->seqnr_lock){+.-.}-{3:3}, at: hsr_dev_xmit+0x237/0x360 net/hsr/hsr_device.c:235
but task is already holding lock:
ffff88807cd74f30 (&hsr->seqnr_lock){+.-.}-{3:3}, at: spin_lock_bh include/linux/spinlock.h:356 [inline]
ffff88807cd74f30 (&hsr->seqnr_lock){+.-.}-{3:3}, at: send_hsr_supervision_frame+0x380/0xcb0 net/hsr/hsr_device.c:330
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&hsr->seqnr_lock);
lock(&hsr->seqnr_lock);
*** DEADLOCK ***
May be due to missing lock nesting notation
12 locks held by kworker/0:4/15296:
#0: ffff888141ef0948 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3232 [inline]
#0: ffff888141ef0948 ((wq_completion)usb_hub_wq){+.+.}-{0:0}, at: process_scheduled_works+0x9b4/0x1770 kernel/workqueue.c:3340
#1: ffffc900050ffbc0 ((work_completion)(&hub->events)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3233 [inline]
#1: ffffc900050ffbc0 ((work_completion)(&hub->events)){+.+.}-{0:0}, at: process_scheduled_works+0x9ef/0x1770 kernel/workqueue.c:3340
#2: ffff888143796198 (&dev->mutex){....}-{4:4}, at: device_lock include/linux/device.h:895 [inline]
#2: ffff888143796198 (&dev->mutex){....}-{4:4}, at: hub_event+0x187/0x4ef0 drivers/usb/core/hub.c:5899
#3: ffffffff8df35980 (console_lock){+.+.}-{0:0}, at: dev_vprintk_emit+0x337/0x3f0 drivers/base/core.c:4914
#4: ffffffff8de1d238 (console_srcu){....}-{0:0}, at: rcu_try_lock_acquire include/linux/rcupdate.h:336 [inline]
#4: ffffffff8de1d238 (console_srcu){....}-{0:0}, at: srcu_read_lock_nmisafe include/linux/srcu.h:409 [inline]
#4: ffffffff8de1d238 (console_srcu){....}-{0:0}, at: console_srcu_read_lock kernel/printk/printk.c:289 [inline]
#4: ffffffff8de1d238 (console_srcu){....}-{0:0}, at: console_flush_one_record kernel/printk/printk.c:3192 [inline]
#4: ffffffff8de1d238 (console_srcu){....}-{0:0}, at: console_flush_all+0x11a/0xb00 kernel/printk/printk.c:3289
#5: ffffc90000007ce0 ((&hsr->announce_timer)){+.-.}-{0:0}, at: call_timer_fn+0xbe/0x590 kernel/time/timer.c:1745
#6: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline]
#6: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:867 [inline]
#6: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: hsr_announce+0x83/0x360 net/hsr/hsr_device.c:419
#7: ffff88807cd74f30 (&hsr->seqnr_lock){+.-.}-{3:3}, at: spin_lock_bh include/linux/spinlock.h:356 [inline]
#7: ffff88807cd74f30 (&hsr->seqnr_lock){+.-.}-{3:3}, at: send_hsr_supervision_frame+0x380/0xcb0 net/hsr/hsr_device.c:330
#8: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline]
#8: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:867 [inline]
#8: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: hsr_forward_skb+0x9e/0x2860 net/hsr/hsr_forward.c:738
#9: ffffffff8df41b00 (rcu_read_lock_bh){....}-{1:3}, at: local_bh_disable include/linux/bottom_half.h:20 [inline]
#9: ffffffff8df41b00 (rcu_read_lock_bh){....}-{1:3}, at: rcu_read_lock_bh include/linux/rcupdate.h:918 [inline]
#9: ffffffff8df41b00 (rcu_read_lock_bh){....}-{1:3}, at: __dev_queue_xmit+0x289/0x31c0 net/core/dev.c:4744
#10: ffffffff8df41b00 (rcu_read_lock_bh){....}-{1:3}, at: local_bh_disable include/linux/bottom_half.h:20 [inline]
#10: ffffffff8df41b00 (rcu_read_lock_bh){....}-{1:3}, at: rcu_read_lock_bh include/linux/rcupdate.h:918 [inline]
#10: ffffffff8df41b00 (rcu_read_lock_bh){....}-{1:3}, at: __dev_queue_xmit+0x289/0x31c0 net/core/dev.c:4744
#11: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:331 [inline]
#11: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:867 [inline]
#11: ffffffff8df41aa0 (rcu_read_lock){....}-{1:3}, at: hsr_dev_xmit+0x2d/0x360 net/hsr/hsr_device.c:229
stack backtrace:
CPU: 0 UID: 0 PID: 15296 Comm: kworker/0:4 Tainted: G L syzkaller #0 PREEMPT(full)
Tainted: [L]=SOFTLOCKUP
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
Workqueue: usb_hub_wq hub_event
Call Trace:
dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120
print_deadlock_bug+0x279/0x290 kernel/locking/lockdep.c:3041
check_deadlock kernel/locking/lockdep.c:3093 [inline]
validate_chain kernel/locking/lockdep.c:3895 [inline]
__lock_acquire+0x2540/0x2cf0 kernel/locking/lockdep.c:5237
lock_acquire+0x107/0x340 kernel/locking/lockdep.c:5868
__raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline]
_raw_spin_lock_bh+0x36/0x50 kernel/locking/spinlock.c:178
spin_lock_bh include/linux/spinlock.h:356 [inline]
hsr_dev_xmit+0x237/0x360 net/hsr/hsr_device.c:235
__netdev_start_xmit include/linux/netdevice.h:5273 [inline]
netdev_start_xmit include/linux/netdevice.h:5282 [inline]
xmit_one net/core/dev.c:3853 [inline]
dev_hard_start_xmit+0x2cd/0x800 net/core/dev.c:3869
__dev_queue_xmit+0x149d/0x31c0 net/core/dev.c:4819
dev_queue_xmit_accel include/linux/netdevice.h:3387 [inline]
macvlan_queue_xmit drivers/net/macvlan.c:557 [inline]
macvlan_start_xmit+0x3ba/0x600 drivers/net/macvlan.c:581
__netdev_start_xmit include/linux/netdevice.h:5273 [inline]
netdev_start_xmit include/linux/netdevice.h:5282 [inline]
xmit_one net/core/dev.c:3853 [inline]
dev_hard_start_xmit+0x2cd/0x800 net/core/dev.c:3869
__dev_queue_xmit+0x149d/0x31c0 net/core/dev.c:4819
dev_queue_xmit include/linux/netdevice.h:3381 [inline]
hsr_xmit net/hsr/hsr_forward.c:440 [inline]
hsr_forward_do net/hsr/hsr_forward.c:581 [inline]
hsr_forward_skb+0x158b/0x2860 net/hsr/hsr_forward.c:743
send_hsr_supervision_frame+0x731/0xcb0 net/hsr/hsr_device.c:364
hsr_announce+0x1d5/0x360 net/hsr/hsr_device.c:421
call_timer_fn+0x16e/0x590 kernel/time/timer.c:1748
expire_timers kernel/time/timer.c:1799 [inline]
__run_timers kernel/time/timer.c:2373 [inline]
__run_timer_base+0x61a/0x860 kernel/time/timer.c:2385
run_timer_base kernel/time/timer.c:2394 [inline]
run_timer_softirq+0xb7/0x180 kernel/time/timer.c:2404
handle_softirqs+0x22b/0x7c0 kernel/softirq.c:622
__do_softirq kernel/softirq.c:656 [inline]
invoke_softirq kernel/softirq.c:496 [inline]
__irq_exit_rcu+0x60/0x150 kernel/softirq.c:723
irq_exit_rcu+0x9/0x30 kernel/softirq.c:739
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1056 [inline]
sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1056
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:697
RIP: 0010:console_flush_one_record arch/x86/include/asm/irqflags.h:-1 [inline]
RIP: 0010:console_flush_all+0x7fc/0xb00 kernel/printk/printk.c:3289
Code: ff ff e8 c7 f9 1f 00 90 0f 0b 90 e9 85 fc ff ff e8 b9 f9 1f 00 e8 c4 c2 b8 09 48 85 db 74 c0 e8 aa f9 1f 00 fb 48 8b 5c 24 10 <48> 8b 44 24 20 42 80 3c 28 00 4c 8b 74 24 18 74 08 4c 89 f7 e8 8b
RSP: 0018:ffffc900050ff060 EFLAGS: 00000287
RAX: ffffffff81a0fe66 RBX: ffffc900050ff1c0 RCX: 0000000000100000
RDX: ffffc9001a584000 RSI: 0000000000041a73 RDI: 0000000000041a74
RBP: ffffc900050ff170 R08: ffffffff8f822477 R09: 1ffffffff1f0448e
R10: dffffc0000000000 R11: fffffbfff1f0448f R12: 0000000000000001
R13: dffffc0000000000 R14: 0000000000000000 R15: ffffffff8e792240
__console_flush_and_unlock kernel/printk/printk.c:3319 [inline]
console_unlock+0xbb/0x190 kernel/printk/printk.c:3359
vprintk_emit+0x47b/0x550 kernel/printk/printk.c:2426
dev_vprintk_emit+0x337/0x3f0 drivers/base/core.c:4914
dev_printk_emit+0xe0/0x130 drivers/base/core.c:4925
_dev_info+0x10a/0x160 drivers/base/core.c:4983
announce_device+0x117/0x2c0 drivers/usb/core/hub.c:2413
usb_new_device+0x4ef/0x1720 drivers/usb/core/hub.c:2676
hub_port_connect drivers/usb/core/hub.c:5567 [inline]
hub_port_connect_change drivers/usb/core/hub.c:5707 [inline]
port_event drivers/usb/core/hub.c:5871 [inline]
hub_event+0x29b1/0x4ef0 drivers/usb/core/hub.c:5953
process_one_work kernel/workqueue.c:3257 [inline]
process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340
worker_thread+0x8a0/0xda0 kernel/workqueue.c:3421
kthread+0x711/0x8a0 kernel/kthread.c:463
ret_from_fork+0x510/0xa50 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:246
----------------
Code disassembly (best guess), 2 bytes skipped:
0: e8 c7 f9 1f 00 call 0x1ff9cc
5: 90 nop
6: 0f 0b ud2
8: 90 nop
9: e9 85 fc ff ff jmp 0xfffffc93
e: e8 b9 f9 1f 00 call 0x1ff9cc
13: e8 c4 c2 b8 09 call 0x9b8c2dc
18: 48 85 db test %rbx,%rbx
1b: 74 c0 je 0xffffffdd
1d: e8 aa f9 1f 00 call 0x1ff9cc
22: fb sti
23: 48 8b 5c 24 10 mov 0x10(%rsp),%rbx
* 28: 48 8b 44 24 20 mov 0x20(%rsp),%rax <-- trapping instruction
2d: 42 80 3c 28 00 cmpb $0x0,(%rax,%r13,1)
32: 4c 8b 74 24 18 mov 0x18(%rsp),%r14
37: 74 08 je 0x41
39: 4c 89 f7 mov %r14,%rdi
3c: e8 .byte 0xe8
3d: 8b .byte 0x8b