============================================ 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