bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
============================================
WARNING: possible recursive locking detected
6.1.128-syzkaller #0 Not tainted
--------------------------------------------
swapper/0/0 is trying to acquire lock:
ffff8880599d3218 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:351 [inline]
ffff8880599d3218 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: __dev_xmit_skb net/core/dev.c:3894 [inline]
ffff8880599d3218 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: __dev_queue_xmit+0x22db/0x3d50 net/core/dev.c:4269
but task is already holding lock:
ffff8880663d6258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: spin_trylock include/linux/spinlock.h:361 [inline]
ffff8880663d6258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: qdisc_run_begin include/net/sch_generic.h:195 [inline]
ffff8880663d6258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: __dev_xmit_skb net/core/dev.c:3851 [inline]
ffff8880663d6258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: __dev_queue_xmit+0x12c7/0x3d50 net/core/dev.c:4269
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(dev->qdisc_tx_busylock ?: &qdisc_tx_busylock);
lock(dev->qdisc_tx_busylock ?: &qdisc_tx_busylock);
*** DEADLOCK ***
May be due to missing lock nesting notation
9 locks held by swapper/0/0:
#0: ffffc90000007bc0 ((&ndev->rs_timer)){+.-.}-{0:0}, at: call_timer_fn+0xc2/0x6b0 kernel/time/timer.c:1501
#1: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline]
#1: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline]
#1: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: ip6_nd_hdr net/ipv6/ndisc.c:454 [inline]
#1: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: ndisc_send_skb+0x5a8/0x14e0 net/ipv6/ndisc.c:505
#2: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline]
#2: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline]
#2: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: ip6_finish_output2+0x6a0/0x1700 net/ipv6/ip6_output.c:123
#3: ffffffff8d32e6e0 (rcu_read_lock_bh){....}-{1:2}, at: local_bh_disable include/linux/bottom_half.h:20 [inline]
#3: ffffffff8d32e6e0 (rcu_read_lock_bh){....}-{1:2}, at: rcu_read_lock_bh include/linux/rcupdate.h:843 [inline]
#3: ffffffff8d32e6e0 (rcu_read_lock_bh){....}-{1:2}, at: __dev_queue_xmit+0x2d6/0x3d50 net/core/dev.c:4226
#4: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline]
#4: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline]
#4: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: br_dev_xmit+0x212/0x18e0 net/bridge/br_device.c:49
#5: ffffffff8d32e6e0 (rcu_read_lock_bh){....}-{1:2}, at: local_bh_disable include/linux/bottom_half.h:20 [inline]
#5: ffffffff8d32e6e0 (rcu_read_lock_bh){....}-{1:2}, at: rcu_read_lock_bh include/linux/rcupdate.h:843 [inline]
#5: ffffffff8d32e6e0 (rcu_read_lock_bh){....}-{1:2}, at: __dev_queue_xmit+0x2d6/0x3d50 net/core/dev.c:4226
#6: ffff8880663d6258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: spin_trylock include/linux/spinlock.h:361 [inline]
#6: ffff8880663d6258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: qdisc_run_begin include/net/sch_generic.h:195 [inline]
#6: ffff8880663d6258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: __dev_xmit_skb net/core/dev.c:3851 [inline]
#6: ffff8880663d6258 (dev->qdisc_tx_busylock ?: &qdisc_tx_busylock){+.-.}-{2:2}, at: __dev_queue_xmit+0x12c7/0x3d50 net/core/dev.c:4269
#7: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:350 [inline]
#7: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:791 [inline]
#7: ffffffff8d32e680 (rcu_read_lock){....}-{1:2}, at: ip_finish_output2+0x3ee/0x1270 net/ipv4/ip_output.c:221
#8: ffffffff8d32e6e0 (rcu_read_lock_bh){....}-{1:2}, at: local_bh_disable include/linux/bottom_half.h:20 [inline]
#8: ffffffff8d32e6e0 (rcu_read_lock_bh){....}-{1:2}, at: rcu_read_lock_bh include/linux/rcupdate.h:843 [inline]
#8: ffffffff8d32e6e0 (rcu_read_lock_bh){....}-{1:2}, at: __dev_queue_xmit+0x2d6/0x3d50 net/core/dev.c:4226
stack backtrace:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.1.128-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Call Trace:
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0x1e3/0x2cb lib/dump_stack.c:106
print_deadlock_bug kernel/locking/lockdep.c:2983 [inline]
check_deadlock kernel/locking/lockdep.c:3026 [inline]
validate_chain+0x4711/0x5950 kernel/locking/lockdep.c:3812
__lock_acquire+0x125b/0x1f80 kernel/locking/lockdep.c:5049
lock_acquire+0x1f8/0x5a0 kernel/locking/lockdep.c:5662
__raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline]
_raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:154
spin_lock include/linux/spinlock.h:351 [inline]
__dev_xmit_skb net/core/dev.c:3894 [inline]
__dev_queue_xmit+0x22db/0x3d50 net/core/dev.c:4269
dev_queue_xmit include/linux/netdevice.h:3043 [inline]
neigh_hh_output include/net/neighbour.h:528 [inline]
neigh_output include/net/neighbour.h:542 [inline]
ip_finish_output2+0xd6e/0x1270 net/ipv4/ip_output.c:228
iptunnel_xmit+0x513/0x920 net/ipv4/ip_tunnel_core.c:82
ip_tunnel_xmit+0x1f87/0x2690 net/ipv4/ip_tunnel.c:858
__gre_xmit net/ipv4/ip_gre.c:474 [inline]
gre_tap_xmit+0x4eb/0x6e0 net/ipv4/ip_gre.c:751
__netdev_start_xmit include/linux/netdevice.h:4888 [inline]
netdev_start_xmit include/linux/netdevice.h:4902 [inline]
xmit_one net/core/dev.c:3627 [inline]
dev_hard_start_xmit+0x261/0x8c0 net/core/dev.c:3643
sch_direct_xmit+0x2b2/0x5e0 net/sched/sch_generic.c:342
__dev_xmit_skb net/core/dev.c:3864 [inline]
__dev_queue_xmit+0x1a7a/0x3d50 net/core/dev.c:4269
dev_queue_xmit include/linux/netdevice.h:3043 [inline]
br_dev_queue_push_xmit+0x6fe/0x8c0 net/bridge/br_forward.c:53
NF_HOOK+0x39f/0x450 include/linux/netfilter.h:302
br_forward_finish+0xe1/0x130 net/bridge/br_forward.c:66
NF_HOOK+0x39f/0x450 include/linux/netfilter.h:302
__br_forward+0x430/0x5f0 net/bridge/br_forward.c:115
deliver_clone net/bridge/br_forward.c:131 [inline]
maybe_deliver+0xb3/0x150 net/bridge/br_forward.c:189
br_flood+0x2e7/0x440 net/bridge/br_forward.c:231
br_dev_xmit+0x1194/0x18e0
__netdev_start_xmit include/linux/netdevice.h:4888 [inline]
netdev_start_xmit include/linux/netdevice.h:4902 [inline]
xmit_one net/core/dev.c:3627 [inline]
dev_hard_start_xmit+0x261/0x8c0 net/core/dev.c:3643
__dev_queue_xmit+0x1b5d/0x3d50 net/core/dev.c:4303
neigh_output include/net/neighbour.h:544 [inline]
ip6_finish_output2+0xfe5/0x1700 net/ipv6/ip6_output.c:138
__ip6_finish_output net/ipv6/ip6_output.c:205 [inline]
ip6_finish_output+0x6a0/0xa80 net/ipv6/ip6_output.c:216
dst_output include/net/dst.h:444 [inline]
NF_HOOK include/linux/netfilter.h:302 [inline]
ndisc_send_skb+0xbab/0x14e0 net/ipv6/ndisc.c:511
addrconf_rs_timer+0x357/0x610 net/ipv6/addrconf.c:3982
call_timer_fn+0x1ad/0x6b0 kernel/time/timer.c:1504
expire_timers kernel/time/timer.c:1549 [inline]
__run_timers+0x67c/0x890 kernel/time/timer.c:1820
run_timer_softirq+0x63/0xf0 kernel/time/timer.c:1833
handle_softirqs+0x2ee/0xa40 kernel/softirq.c:578
__do_softirq kernel/softirq.c:612 [inline]
invoke_softirq kernel/softirq.c:452 [inline]
__irq_exit_rcu+0x157/0x240 kernel/softirq.c:661
irq_exit_rcu+0x5/0x20 kernel/softirq.c:673
instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1118 [inline]
sysvec_apic_timer_interrupt+0xa0/0xc0 arch/x86/kernel/apic/apic.c:1118
asm_sysvec_apic_timer_interrupt+0x16/0x20 arch/x86/include/asm/idtentry.h:691
RIP: 0010:native_save_fl arch/x86/include/asm/irqflags.h:22 [inline]
RIP: 0010:arch_local_save_flags arch/x86/include/asm/irqflags.h:70 [inline]
RIP: 0010:arch_irqs_disabled arch/x86/include/asm/irqflags.h:130 [inline]
RIP: 0010:acpi_safe_halt drivers/acpi/processor_idle.c:112 [inline]
RIP: 0010:acpi_idle_do_entry+0x10f/0x340 drivers/acpi/processor_idle.c:567
Code: 91 cf f6 48 83 e3 08 0f 85 0b 01 00 00 4c 8d 74 24 20 e8 44 4e d6 f6 0f 1f 44 00 00 e8 7a 8d cf f6 0f 00 2d 63 b0 ae 00 fb f4 <4c> 89 f3 48 c1 eb 03 42 80 3c 3b 00 74 08 4c 89 f7 e8 6b e4 26 f7
RSP: 0018:ffffffff8d007b20 EFLAGS: 000002d3
RAX: ffffffff8abb0576 RBX: 0000000000000000 RCX: ffffffff8d0bd980
RDX: 0000000000000000 RSI: ffffffff8b0c1d20 RDI: ffffffff8b5f6d00
RBP: ffffffff8d007bb0 R08: ffffffff8abb0558 R09: fffffbfff1a17b31
R10: 0000000000000000 R11: dffffc0000000001 R12: 1ffffffff1a00f64
R13: ffff88801a2a6804 R14: ffffffff8d007b40 R15: dffffc0000000000
acpi_idle_enter+0x352/0x4f0 drivers/acpi/processor_idle.c:704
cpuidle_enter_state+0x516/0xf80 drivers/cpuidle/cpuidle.c:239
cpuidle_enter+0x59/0x90 drivers/cpuidle/cpuidle.c:356
call_cpuidle kernel/sched/idle.c:155 [inline]
cpuidle_idle_call kernel/sched/idle.c:236 [inline]
do_idle+0x3ce/0x680 kernel/sched/idle.c:303
cpu_startup_entry+0x3d/0x60 kernel/sched/idle.c:401
rest_init+0x2da/0x300 init/main.c:733
arch_call_rest_init+0xa/0xa init/main.c:893
start_kernel+0x496/0x53f init/main.c:1140
secondary_startup_64_no_verify+0xcf/0xdb
bridge0: received packet on gretap1 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:aa:aa:aa:aa:aa:0c, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
bridge0: received packet on gretap1 with own address as source address (addr:0a:12:7d:f2:6c:8e, vlan:0)
----------------
Code disassembly (best guess):
0: 91 xchg %eax,%ecx
1: cf iret
2: f6 48 83 e3 testb $0xe3,-0x7d(%rax)
6: 08 0f or %cl,(%rdi)
8: 85 0b test %ecx,(%rbx)
a: 01 00 add %eax,(%rax)
c: 00 4c 8d 74 add %cl,0x74(%rbp,%rcx,4)
10: 24 20 and $0x20,%al
12: e8 44 4e d6 f6 call 0xf6d64e5b
17: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
1c: e8 7a 8d cf f6 call 0xf6cf8d9b
21: 0f 00 2d 63 b0 ae 00 verw 0xaeb063(%rip) # 0xaeb08b
28: fb sti
29: f4 hlt
* 2a: 4c 89 f3 mov %r14,%rbx <-- trapping instruction
2d: 48 c1 eb 03 shr $0x3,%rbx
31: 42 80 3c 3b 00 cmpb $0x0,(%rbx,%r15,1)
36: 74 08 je 0x40
38: 4c 89 f7 mov %r14,%rdi
3b: e8 6b e4 26 f7 call 0xf726e4ab