======================================================
WARNING: possible circular locking dependency detected
syzkaller #0 Not tainted
------------------------------------------------------
kworker/u4:6/2882 is trying to acquire lock:
ffff88807b620d80 (&hsr->seqnr_lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline]
ffff88807b620d80 (&hsr->seqnr_lock){+.-.}-{2:2}, at: hsr_dev_xmit+0x1dc/0x350 net/hsr/hsr_device.c:237
but task is already holding lock:
ffff88804a3c50d8 (&qdisc_xmit_lock_key#3){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline]
ffff88804a3c50d8 (&qdisc_xmit_lock_key#3){+.-.}-{2:2}, at: __netif_tx_lock include/linux/netdevice.h:4406 [inline]
ffff88804a3c50d8 (&qdisc_xmit_lock_key#3){+.-.}-{2:2}, at: sch_direct_xmit+0x166/0x4c0 net/sched/sch_generic.c:343
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (&qdisc_xmit_lock_key#3){+.-.}-{2:2}:
__raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline]
_raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154
spin_lock include/linux/spinlock.h:351 [inline]
__netif_tx_lock include/linux/netdevice.h:4406 [inline]
sch_direct_xmit+0x166/0x4c0 net/sched/sch_generic.c:343
__dev_xmit_skb net/core/dev.c:3881 [inline]
__dev_queue_xmit+0x165d/0x3660 net/core/dev.c:4416
dev_queue_xmit include/linux/netdevice.h:3113 [inline]
hsr_xmit net/hsr/hsr_forward.c:382 [inline]
hsr_forward_do net/hsr/hsr_forward.c:473 [inline]
hsr_forward_skb+0x1335/0x2140 net/hsr/hsr_forward.c:626
send_hsr_supervision_frame+0x5fb/0xb90 net/hsr/hsr_device.c:346
hsr_announce+0x198/0x350 net/hsr/hsr_device.c:402
call_timer_fn+0x189/0x540 kernel/time/timer.c:1701
expire_timers kernel/time/timer.c:1752 [inline]
__run_timers+0x542/0x800 kernel/time/timer.c:2023
run_timer_softirq+0x67/0xf0 kernel/time/timer.c:2036
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+0xd3/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
asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:687
unwind_next_frame+0x176a/0x2970 arch/x86/kernel/unwind_orc.c:648
arch_stack_walk+0x144/0x190 arch/x86/kernel/stacktrace.c:25
stack_trace_save+0xaa/0x100 kernel/stacktrace.c:122
kasan_save_stack mm/kasan/common.c:46 [inline]
kasan_set_track+0x4e/0x70 mm/kasan/common.c:53
__kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:329
kasan_slab_alloc include/linux/kasan.h:188 [inline]
slab_post_alloc_hook+0x6e/0x4b0 mm/slab.h:767
slab_alloc_node mm/slub.c:3495 [inline]
slab_alloc mm/slub.c:3503 [inline]
__kmem_cache_alloc_lru mm/slub.c:3510 [inline]
kmem_cache_alloc+0x11a/0x2d0 mm/slub.c:3519
anon_vma_alloc mm/rmap.c:94 [inline]
__anon_vma_prepare+0xbe/0x430 mm/rmap.c:203
anon_vma_prepare include/linux/rmap.h:159 [inline]
do_cow_fault mm/memory.c:4660 [inline]
do_fault mm/memory.c:4777 [inline]
do_pte_missing mm/memory.c:3689 [inline]
handle_pte_fault mm/memory.c:5047 [inline]
__handle_mm_fault mm/memory.c:5188 [inline]
handle_mm_fault+0x40ed/0x4c00 mm/memory.c:5353
do_user_addr_fault+0x730/0x12c0 arch/x86/mm/fault.c:1371
handle_page_fault arch/x86/mm/fault.c:1463 [inline]
exc_page_fault+0x64/0x100 arch/x86/mm/fault.c:1516
asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:608
-> #0 (&hsr->seqnr_lock){+.-.}-{2:2}:
check_prev_add kernel/locking/lockdep.c:3134 [inline]
check_prevs_add kernel/locking/lockdep.c:3253 [inline]
validate_chain kernel/locking/lockdep.c:3869 [inline]
__lock_acquire+0x2df1/0x7d40 kernel/locking/lockdep.c:5137
lock_acquire+0x19e/0x420 kernel/locking/lockdep.c:5754
__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+0x1dc/0x350 net/hsr/hsr_device.c:237
__netdev_start_xmit include/linux/netdevice.h:4943 [inline]
netdev_start_xmit include/linux/netdevice.h:4957 [inline]
xmit_one net/core/dev.c:3644 [inline]
dev_hard_start_xmit+0x246/0x740 net/core/dev.c:3660
__dev_queue_xmit+0x19a3/0x3660 net/core/dev.c:4454
NF_HOOK+0x331/0x3b0 include/linux/netfilter.h:-1
arp_xmit+0x16c/0x270 net/ipv4/arp.c:664
arp_solicit+0xc05/0xe40 net/ipv4/arp.c:392
neigh_probe net/core/neighbour.c:1080 [inline]
__neigh_event_send+0xed1/0x1440 net/core/neighbour.c:1247
neigh_event_send_probe include/net/neighbour.h:467 [inline]
neigh_event_send include/net/neighbour.h:473 [inline]
neigh_resolve_output+0x19b/0x730 net/core/neighbour.c:1552
neigh_output include/net/neighbour.h:543 [inline]
ip_finish_output2+0xd3a/0x11e0 net/ipv4/ip_output.c:235
NF_HOOK_COND include/linux/netfilter.h:293 [inline]
ip_output+0x2a1/0x3b0 net/ipv4/ip_output.c:436
iptunnel_xmit+0x4f0/0x920 net/ipv4/ip_tunnel_core.c:82
ip_tunnel_xmit+0x1cbc/0x2410 net/ipv4/ip_tunnel.c:844
erspan_xmit+0x9c0/0x1440 net/ipv4/ip_gre.c:729
__netdev_start_xmit include/linux/netdevice.h:4943 [inline]
netdev_start_xmit include/linux/netdevice.h:4957 [inline]
xmit_one net/core/dev.c:3644 [inline]
dev_hard_start_xmit+0x246/0x740 net/core/dev.c:3660
sch_direct_xmit+0x25e/0x4c0 net/sched/sch_generic.c:345
__dev_xmit_skb net/core/dev.c:3881 [inline]
__dev_queue_xmit+0x165d/0x3660 net/core/dev.c:4416
dev_queue_xmit include/linux/netdevice.h:3113 [inline]
alb_send_lp_vid+0x2fc/0x4e0 drivers/net/bonding/bond_alb.c:949
alb_send_learning_packets+0x12d/0x300 drivers/net/bonding/bond_alb.c:1012
bond_alb_monitor+0x3d6/0x17e0 drivers/net/bonding/bond_alb.c:1564
process_one_work kernel/workqueue.c:2653 [inline]
process_scheduled_works+0xa5d/0x15d0 kernel/workqueue.c:2730
worker_thread+0xa55/0xfc0 kernel/workqueue.c:2811
kthread+0x2fa/0x390 kernel/kthread.c:388
ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152
ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock(&qdisc_xmit_lock_key#3);
lock(&hsr->seqnr_lock);
lock(&qdisc_xmit_lock_key#3);
lock(&hsr->seqnr_lock);
*** DEADLOCK ***
11 locks held by kworker/u4:6/2882:
#0: ffff88805f2bdd38 ((wq_completion)bond3#5){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2628 [inline]
#0: ffff88805f2bdd38 ((wq_completion)bond3#5){+.+.}-{0:0}, at: process_scheduled_works+0x96f/0x15d0 kernel/workqueue.c:2730
#1: ffffc9000c2dfd00 ((work_completion)(&(&bond->alb_work)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:2628 [inline]
#1: ffffc9000c2dfd00 ((work_completion)(&(&bond->alb_work)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x96f/0x15d0 kernel/workqueue.c:2730
#2: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:334 [inline]
#2: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:786 [inline]
#2: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: bond_alb_monitor+0xf9/0x17e0 drivers/net/bonding/bond_alb.c:1547
#3: ffffffff8d1321c0 (rcu_read_lock_bh){....}-{1:2}, at: local_bh_disable include/linux/bottom_half.h:20 [inline]
#3: ffffffff8d1321c0 (rcu_read_lock_bh){....}-{1:2}, at: rcu_read_lock_bh include/linux/rcupdate.h:838 [inline]
#3: ffffffff8d1321c0 (rcu_read_lock_bh){....}-{1:2}, at: __dev_queue_xmit+0x265/0x3660 net/core/dev.c:4375
#4: ffff888024e8d258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock#2){+...}-{2:2}, at: spin_trylock include/linux/spinlock.h:361 [inline]
#4: ffff888024e8d258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock#2){+...}-{2:2}, at: qdisc_run_begin include/net/sch_generic.h:195 [inline]
#4: ffff888024e8d258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock#2){+...}-{2:2}, at: __dev_xmit_skb net/core/dev.c:3868 [inline]
#4: ffff888024e8d258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock#2){+...}-{2:2}, at: __dev_queue_xmit+0x1186/0x3660 net/core/dev.c:4416
#5: ffff88804a3c50d8 (&qdisc_xmit_lock_key#3){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline]
#5: ffff88804a3c50d8 (&qdisc_xmit_lock_key#3){+.-.}-{2:2}, at: __netif_tx_lock include/linux/netdevice.h:4406 [inline]
#5: ffff88804a3c50d8 (&qdisc_xmit_lock_key#3){+.-.}-{2:2}, at: sch_direct_xmit+0x166/0x4c0 net/sched/sch_generic.c:343
#6: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:334 [inline]
#6: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:786 [inline]
#6: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: ip_output+0x60/0x3b0 net/ipv4/ip_output.c:431
#7: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:334 [inline]
#7: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:786 [inline]
#7: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: ip_finish_output2+0x457/0x11e0 net/ipv4/ip_output.c:228
#8: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:334 [inline]
#8: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:786 [inline]
#8: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: arp_xmit+0x23/0x270 net/ipv4/arp.c:662
#9: ffffffff8d1321c0 (rcu_read_lock_bh){....}-{1:2}, at: local_bh_disable include/linux/bottom_half.h:20 [inline]
#9: ffffffff8d1321c0 (rcu_read_lock_bh){....}-{1:2}, at: rcu_read_lock_bh include/linux/rcupdate.h:838 [inline]
#9: ffffffff8d1321c0 (rcu_read_lock_bh){....}-{1:2}, at: __dev_queue_xmit+0x265/0x3660 net/core/dev.c:4375
#10: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:334 [inline]
#10: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:786 [inline]
#10: ffffffff8d132160 (rcu_read_lock){....}-{1:2}, at: hsr_dev_xmit+0x2d/0x350 net/hsr/hsr_device.c:231
stack backtrace:
CPU: 1 PID: 2882 Comm: kworker/u4:6 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/18/2026
Workqueue: bond3 bond_alb_monitor
Call Trace:
<TASK>
dump_stack_lvl+0x18c/0x250 lib/dump_stack.c:106
check_noncircular+0x2fc/0x400 kernel/locking/lockdep.c:2187
check_prev_add kernel/locking/lockdep.c:3134 [inline]
check_prevs_add kernel/locking/lockdep.c:3253 [inline]
validate_chain kernel/locking/lockdep.c:3869 [inline]
__lock_acquire+0x2df1/0x7d40 kernel/locking/lockdep.c:5137
lock_acquire+0x19e/0x420 kernel/locking/lockdep.c:5754
__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+0x1dc/0x350 net/hsr/hsr_device.c:237
__netdev_start_xmit include/linux/netdevice.h:4943 [inline]
netdev_start_xmit include/linux/netdevice.h:4957 [inline]
xmit_one net/core/dev.c:3644 [inline]
dev_hard_start_xmit+0x246/0x740 net/core/dev.c:3660
__dev_queue_xmit+0x19a3/0x3660 net/core/dev.c:4454
NF_HOOK+0x331/0x3b0 include/linux/netfilter.h:-1
arp_xmit+0x16c/0x270 net/ipv4/arp.c:664
arp_solicit+0xc05/0xe40 net/ipv4/arp.c:392
neigh_probe net/core/neighbour.c:1080 [inline]
__neigh_event_send+0xed1/0x1440 net/core/neighbour.c:1247
neigh_event_send_probe include/net/neighbour.h:467 [inline]
neigh_event_send include/net/neighbour.h:473 [inline]
neigh_resolve_output+0x19b/0x730 net/core/neighbour.c:1552
neigh_output include/net/neighbour.h:543 [inline]
ip_finish_output2+0xd3a/0x11e0 net/ipv4/ip_output.c:235
NF_HOOK_COND include/linux/netfilter.h:293 [inline]
ip_output+0x2a1/0x3b0 net/ipv4/ip_output.c:436
iptunnel_xmit+0x4f0/0x920 net/ipv4/ip_tunnel_core.c:82
ip_tunnel_xmit+0x1cbc/0x2410 net/ipv4/ip_tunnel.c:844
erspan_xmit+0x9c0/0x1440 net/ipv4/ip_gre.c:729
__netdev_start_xmit include/linux/netdevice.h:4943 [inline]
netdev_start_xmit include/linux/netdevice.h:4957 [inline]
xmit_one net/core/dev.c:3644 [inline]
dev_hard_start_xmit+0x246/0x740 net/core/dev.c:3660
sch_direct_xmit+0x25e/0x4c0 net/sched/sch_generic.c:345
__dev_xmit_skb net/core/dev.c:3881 [inline]
__dev_queue_xmit+0x165d/0x3660 net/core/dev.c:4416
dev_queue_xmit include/linux/netdevice.h:3113 [inline]
alb_send_lp_vid+0x2fc/0x4e0 drivers/net/bonding/bond_alb.c:949
alb_send_learning_packets+0x12d/0x300 drivers/net/bonding/bond_alb.c:1012
bond_alb_monitor+0x3d6/0x17e0 drivers/net/bonding/bond_alb.c:1564
process_one_work kernel/workqueue.c:2653 [inline]
process_scheduled_works+0xa5d/0x15d0 kernel/workqueue.c:2730
worker_thread+0xa55/0xfc0 kernel/workqueue.c:2811
kthread+0x2fa/0x390 kernel/kthread.c:388
ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152
ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293
</TASK>