============================================
WARNING: possible recursive locking detected
5.9.0-rc7-syzkaller #0 Not tainted
--------------------------------------------
syz-executor.2/9883 is trying to acquire lock:
ffff88809901a398 (_xmit_ETHER#2){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:354 [inline]
ffff88809901a398 (_xmit_ETHER#2){+.-.}-{2:2}, at: __netif_tx_lock include/linux/netdevice.h:4110 [inline]
ffff88809901a398 (_xmit_ETHER#2){+.-.}-{2:2}, at: sch_direct_xmit+0x256/0xbd0 net/sched/sch_generic.c:311
but task is already holding lock:
ffff8880a5d45c98 (_xmit_ETHER#2){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:354 [inline]
ffff8880a5d45c98 (_xmit_ETHER#2){+.-.}-{2:2}, at: __netif_tx_lock include/linux/netdevice.h:4110 [inline]
ffff8880a5d45c98 (_xmit_ETHER#2){+.-.}-{2:2}, at: sch_direct_xmit+0x256/0xbd0 net/sched/sch_generic.c:311
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(_xmit_ETHER#2);
lock(_xmit_ETHER#2);
*** DEADLOCK ***
May be due to missing lock nesting notation
10 locks held by syz-executor.2/9883:
#0: ffffc90000da8d68 ((&in_dev->mr_ifc_timer)){+.-.}-{0:0}, at: lockdep_copy_map include/linux/lockdep.h:35 [inline]
#0: ffffc90000da8d68 ((&in_dev->mr_ifc_timer)){+.-.}-{0:0}, at: call_timer_fn+0xdb/0x760 kernel/time/timer.c:1403
#1: ffffffff8a067ee0 (rcu_read_lock_bh){....}-{1:2}, at: lwtunnel_xmit_redirect include/net/lwtunnel.h:92 [inline]
#1: ffffffff8a067ee0 (rcu_read_lock_bh){....}-{1:2}, at: ip_finish_output2+0x28e/0x21b0 net/ipv4/ip_output.c:215
#2: ffffffff8a067ee0 (rcu_read_lock_bh){....}-{1:2}, at: __dev_queue_xmit+0x1da/0x2d70 net/core/dev.c:4071
#3: ffff88809ebc2258 (&sch->seqlock){+...}-{2:2}, at: spin_trylock include/linux/spinlock.h:364 [inline]
#3: ffff88809ebc2258 (&sch->seqlock){+...}-{2:2}, at: qdisc_run_begin include/net/sch_generic.h:159 [inline]
#3: ffff88809ebc2258 (&sch->seqlock){+...}-{2:2}, at: qdisc_run include/net/pkt_sched.h:128 [inline]
#3: ffff88809ebc2258 (&sch->seqlock){+...}-{2:2}, at: __dev_xmit_skb net/core/dev.c:3752 [inline]
#3: ffff88809ebc2258 (&sch->seqlock){+...}-{2:2}, at: __dev_queue_xmit+0x1319/0x2d70 net/core/dev.c:4105
#4: ffff88809ebc2148 (dev->qdisc_running_key ?: &qdisc_running_key){+...}-{0:0}, at: neigh_resolve_output net/core/neighbour.c:1489 [inline]
#4: ffff88809ebc2148 (dev->qdisc_running_key ?: &qdisc_running_key){+...}-{0:0}, at: neigh_resolve_output+0x3fe/0x6a0 net/core/neighbour.c:1469
#5: ffff8880a5d45c98 (_xmit_ETHER#2){+.-.}-{2:2}, at: spin_lock include/linux/spinlock.h:354 [inline]
#5: ffff8880a5d45c98 (_xmit_ETHER#2){+.-.}-{2:2}, at: __netif_tx_lock include/linux/netdevice.h:4110 [inline]
#5: ffff8880a5d45c98 (_xmit_ETHER#2){+.-.}-{2:2}, at: sch_direct_xmit+0x256/0xbd0 net/sched/sch_generic.c:311
#6: ffffffff8a067ee0 (rcu_read_lock_bh){....}-{1:2}, at: lwtunnel_xmit_redirect include/net/lwtunnel.h:92 [inline]
#6: ffffffff8a067ee0 (rcu_read_lock_bh){....}-{1:2}, at: ip_finish_output2+0x28e/0x21b0 net/ipv4/ip_output.c:215
#7: ffffffff8a067ee0 (rcu_read_lock_bh){....}-{1:2}, at: __dev_queue_xmit+0x1da/0x2d70 net/core/dev.c:4071
#8: ffff8880950e3258 (&sch->seqlock){+...}-{2:2}, at: spin_trylock include/linux/spinlock.h:364 [inline]
#8: ffff8880950e3258 (&sch->seqlock){+...}-{2:2}, at: qdisc_run_begin include/net/sch_generic.h:159 [inline]
#8: ffff8880950e3258 (&sch->seqlock){+...}-{2:2}, at: qdisc_run include/net/pkt_sched.h:128 [inline]
#8: ffff8880950e3258 (&sch->seqlock){+...}-{2:2}, at: __dev_xmit_skb net/core/dev.c:3752 [inline]
#8: ffff8880950e3258 (&sch->seqlock){+...}-{2:2}, at: __dev_queue_xmit+0x1319/0x2d70 net/core/dev.c:4105
#9: ffff8880950e3148 (dev->qdisc_running_key ?: &qdisc_running_key){+...}-{0:0}, at: neigh_resolve_output net/core/neighbour.c:1489 [inline]
#9: ffff8880950e3148 (dev->qdisc_running_key ?: &qdisc_running_key){+...}-{0:0}, at: neigh_resolve_output+0x3fe/0x6a0 net/core/neighbour.c:1469
stack backtrace:
CPU: 1 PID: 9883 Comm: syz-executor.2 Not tainted 5.9.0-rc7-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x198/0x1fd lib/dump_stack.c:118
print_deadlock_bug kernel/locking/lockdep.c:2391 [inline]
check_deadlock kernel/locking/lockdep.c:2432 [inline]
validate_chain kernel/locking/lockdep.c:3202 [inline]
__lock_acquire.cold+0x148/0x3b0 kernel/locking/lockdep.c:4441
lock_acquire+0x1f3/0xaf0 kernel/locking/lockdep.c:5029
__raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline]
_raw_spin_lock+0x2a/0x40 kernel/locking/spinlock.c:151
spin_lock include/linux/spinlock.h:354 [inline]
__netif_tx_lock include/linux/netdevice.h:4110 [inline]
sch_direct_xmit+0x256/0xbd0 net/sched/sch_generic.c:311
qdisc_restart net/sched/sch_generic.c:376 [inline]
__qdisc_run+0x4b9/0x1620 net/sched/sch_generic.c:384
qdisc_run include/net/pkt_sched.h:134 [inline]
qdisc_run include/net/pkt_sched.h:126 [inline]
__dev_xmit_skb net/core/dev.c:3752 [inline]
__dev_queue_xmit+0x145f/0x2d70 net/core/dev.c:4105
neigh_resolve_output net/core/neighbour.c:1489 [inline]
neigh_resolve_output+0x3fe/0x6a0 net/core/neighbour.c:1469
neigh_output include/net/neighbour.h:509 [inline]
ip_finish_output2+0x81b/0x21b0 net/ipv4/ip_output.c:229
__ip_finish_output net/ipv4/ip_output.c:307 [inline]
__ip_finish_output+0x779/0xcb0 net/ipv4/ip_output.c:289
ip_finish_output+0x34/0x1f0 net/ipv4/ip_output.c:317
NF_HOOK_COND include/linux/netfilter.h:290 [inline]
ip_output+0x196/0x310 net/ipv4/ip_output.c:431
dst_output include/net/dst.h:443 [inline]
ip_local_out+0xaf/0x1a0 net/ipv4/ip_output.c:126
iptunnel_xmit+0x5a3/0x9c0 net/ipv4/ip_tunnel_core.c:82
ip_tunnel_xmit+0x1b78/0x2aff net/ipv4/ip_tunnel.c:816
erspan_xmit+0x1109/0x2760 net/ipv4/ip_gre.c:704
__netdev_start_xmit include/linux/netdevice.h:4636 [inline]
netdev_start_xmit include/linux/netdevice.h:4650 [inline]
xmit_one net/core/dev.c:3561 [inline]
dev_hard_start_xmit+0x193/0x950 net/core/dev.c:3577
sch_direct_xmit+0x2e1/0xbd0 net/sched/sch_generic.c:313
qdisc_restart net/sched/sch_generic.c:376 [inline]
__qdisc_run+0x4b9/0x1620 net/sched/sch_generic.c:384
qdisc_run include/net/pkt_sched.h:134 [inline]
qdisc_run include/net/pkt_sched.h:126 [inline]
__dev_xmit_skb net/core/dev.c:3752 [inline]
__dev_queue_xmit+0x145f/0x2d70 net/core/dev.c:4105
neigh_resolve_output net/core/neighbour.c:1489 [inline]
neigh_resolve_output+0x3fe/0x6a0 net/core/neighbour.c:1469
neigh_output include/net/neighbour.h:509 [inline]
ip_finish_output2+0x81b/0x21b0 net/ipv4/ip_output.c:229
__ip_finish_output net/ipv4/ip_output.c:307 [inline]
__ip_finish_output+0x779/0xcb0 net/ipv4/ip_output.c:289
ip_finish_output+0x34/0x1f0 net/ipv4/ip_output.c:317
NF_HOOK_COND include/linux/netfilter.h:290 [inline]
ip_output+0x196/0x310 net/ipv4/ip_output.c:431
dst_output include/net/dst.h:443 [inline]
ip_local_out+0xaf/0x1a0 net/ipv4/ip_output.c:126
igmpv3_send_cr net/ipv4/igmp.c:719 [inline]
igmp_ifc_timer_expire+0x7a7/0xf30 net/ipv4/igmp.c:807
call_timer_fn+0x1ac/0x760 kernel/time/timer.c:1413
expire_timers kernel/time/timer.c:1458 [inline]
__run_timers.part.0+0x67c/0xaa0 kernel/time/timer.c:1755
__run_timers kernel/time/timer.c:1736 [inline]
run_timer_softirq+0xb3/0x1d0 kernel/time/timer.c:1768
__do_softirq+0x1f8/0xb23 kernel/softirq.c:298
asm_call_irq_on_stack+0xf/0x20
__run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
do_softirq_own_stack+0x9b/0xd0 arch/x86/kernel/irq_64.c:77
invoke_softirq kernel/softirq.c:393 [inline]
__irq_exit_rcu kernel/softirq.c:423 [inline]
irq_exit_rcu+0x235/0x280 kernel/softirq.c:435
sysvec_apic_timer_interrupt+0x51/0xf0 arch/x86/kernel/apic/apic.c:1091
asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:581
RIP: 0010:__raw_spin_unlock_irq include/linux/spinlock_api_smp.h:169 [inline]
RIP: 0010:_raw_spin_unlock_irq+0x4b/0x80 kernel/locking/spinlock.c:199
Code: c0 f8 6b fc 89 48 ba 00 00 00 00 00 fc ff df 48 c1 e8 03 80 3c 10 00 75 31 48 83 3d 46 82 d3 01 00 74 25 fb 66 0f 1f 44 00 00 01 00 00 00 e8 6b 0b 28 f9 65 8b 05 b4 14 d9 77 85 c0 74 02 5d
RSP: 0018:ffffc900062b78a0 EFLAGS: 00000282
RAX: 1ffffffff13f8d7f RBX: ffff888056808080 RCX: 1ffffffff16b2519
RDX: dffffc0000000000 RSI: 0000000000000002 RDI: 0000000000000000
RBP: ffff8880ae535e00 R08: 0000000000000001 R09: 0000000000000001
R10: 0000000000000000 R11: 0000000000000000 R12: ffff8880ae535e00
R13: ffff888098328100 R14: ffff88804e6bd880 R15: 0000000000000080
finish_lock_switch kernel/sched/core.c:3517 [inline]
finish_task_switch+0x150/0x790 kernel/sched/core.c:3617
context_switch kernel/sched/core.c:3781 [inline]
__schedule+0xed1/0x2280 kernel/sched/core.c:4527
schedule+0xd0/0x2a0 kernel/sched/core.c:4602
freezable_schedule include/linux/freezer.h:172 [inline]
futex_wait_queue_me+0x2a7/0x570 kernel/futex.c:2588
futex_wait+0x1df/0x560 kernel/futex.c:2690
do_futex+0x15b/0x1a50 kernel/futex.c:3749
__do_sys_futex kernel/futex.c:3810 [inline]
__se_sys_futex kernel/futex.c:3778 [inline]
__x64_sys_futex+0x378/0x4e0 kernel/futex.c:3778
do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46
entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x45dd99
Code: 0d b4 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 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 0f 83 db b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007fc11f610cf8 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
RAX: ffffffffffffffda RBX: 000000000118bf28 RCX: 000000000045dd99
RDX: 0000000000000000 RSI: 0000000000000080 RDI: 000000000118bf28
RBP: 000000000118bf20 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 000000000118bf2c
R13: 000000000169fb6f R14: 00007fc11f6119c0 R15: 000000000118bf2c