BUG: sleeping function called from invalid context at kernel/locking/mutex.c:935 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 789, name: syz-executor.1 2 locks held by syz-executor.1/789: #0: ffffffff88b01b50 (rtnl_mutex){+.+.}, at: rtnl_lock net/core/rtnetlink.c:72 [inline] #0: ffffffff88b01b50 (rtnl_mutex){+.+.}, at: rtnetlink_rcv_msg+0x83c/0xd40 net/core/rtnetlink.c:5220 #1: ffff88808a891300 (&(&sch->q.lock)->rlock){+.-.}, at: spin_lock_bh include/linux/spinlock.h:343 [inline] #1: ffff88808a891300 (&(&sch->q.lock)->rlock){+.-.}, at: sch_tree_lock include/net/sch_generic.h:544 [inline] #1: ffff88808a891300 (&(&sch->q.lock)->rlock){+.-.}, at: sfb_change+0x284/0xd30 net/sched/sch_sfb.c:519 Preemption disabled at: [] spin_lock_bh include/linux/spinlock.h:343 [inline] [] sch_tree_lock include/net/sch_generic.h:544 [inline] [] sfb_change+0x284/0xd30 net/sched/sch_sfb.c:519 CPU: 1 PID: 789 Comm: syz-executor.1 Not tainted 5.3.0+ #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+0x1d8/0x2f8 lib/dump_stack.c:113 ___might_sleep+0x448/0x5e0 kernel/sched/core.c:6807 __might_sleep+0x8f/0x100 kernel/sched/core.c:6760 __mutex_lock_common+0x4e/0x2820 kernel/locking/mutex.c:935 __mutex_lock kernel/locking/mutex.c:1103 [inline] mutex_lock_nested+0x1b/0x30 kernel/locking/mutex.c:1118 tcf_chain0_head_change_cb_del+0x30/0x390 net/sched/cls_api.c:774 tcf_block_put_ext+0x3d/0x2a0 net/sched/cls_api.c:1345 tcf_block_put+0x6e/0x90 net/sched/cls_api.c:1358 sfb_destroy+0x47/0x70 net/sched/sch_sfb.c:467 qdisc_destroy+0x147/0x4d0 net/sched/sch_generic.c:968 qdisc_put+0x5d/0x90 net/sched/sch_generic.c:995 sfb_change+0x52d/0xd30 net/sched/sch_sfb.c:522 qdisc_change net/sched/sch_api.c:1321 [inline] tc_modify_qdisc+0x184d/0x1ea0 net/sched/sch_api.c:1623 rtnetlink_rcv_msg+0x889/0xd40 net/core/rtnetlink.c:5223 netlink_rcv_skb+0x19e/0x3d0 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:5241 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x787/0x900 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x993/0xc50 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:637 [inline] sock_sendmsg net/socket.c:657 [inline] ___sys_sendmsg+0x60d/0x910 net/socket.c:2311 __sys_sendmsg net/socket.c:2356 [inline] __do_sys_sendmsg net/socket.c:2365 [inline] __se_sys_sendmsg net/socket.c:2363 [inline] __x64_sys_sendmsg+0x17c/0x200 net/socket.c:2363 do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x459a09 Code: fd b7 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 cb b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007f111566ec78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000459a09 RDX: 0000000000000000 RSI: 0000000020000240 RDI: 0000000000000009 RBP: 000000000075c118 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f111566f6d4 R13: 00000000004c7933 R14: 00000000004dd328 R15: 00000000ffffffff ===================================================== WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected 5.3.0+ #0 Tainted: G W ----------------------------------------------------- syz-executor.1/789 [HC0[0]:SC0[2]:HE1:SE0] is trying to acquire: ffff8880918bf620 (&block->lock){+.+.}, at: tcf_chain0_head_change_cb_del+0x30/0x390 net/sched/cls_api.c:774 and this task is already holding: ffff88808a891300 (&(&sch->q.lock)->rlock){+.-.}, at: spin_lock_bh include/linux/spinlock.h:343 [inline] ffff88808a891300 (&(&sch->q.lock)->rlock){+.-.}, at: sch_tree_lock include/net/sch_generic.h:544 [inline] ffff88808a891300 (&(&sch->q.lock)->rlock){+.-.}, at: sfb_change+0x284/0xd30 net/sched/sch_sfb.c:519 which would create a new lock dependency: (&(&sch->q.lock)->rlock){+.-.} -> (&block->lock){+.+.} but this new dependency connects a SOFTIRQ-irq-safe lock: (&(&sch->q.lock)->rlock){+.-.} ... which became SOFTIRQ-irq-safe at: lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2d/0x40 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:338 [inline] __dev_xmit_skb net/core/dev.c:3506 [inline] __dev_queue_xmit+0xdda/0x3010 net/core/dev.c:3842 dev_queue_xmit+0x17/0x20 net/core/dev.c:3906 neigh_resolve_output+0x60c/0x6b0 net/core/neighbour.c:1490 neigh_output include/net/neighbour.h:511 [inline] ip6_finish_output2+0x102c/0x13d0 net/ipv6/ip6_output.c:116 __ip6_finish_output+0x693/0x910 net/ipv6/ip6_output.c:142 ip6_finish_output+0x52/0x1e0 net/ipv6/ip6_output.c:152 NF_HOOK_COND include/linux/netfilter.h:294 [inline] ip6_output+0x26f/0x390 net/ipv6/ip6_output.c:175 dst_output include/net/dst.h:436 [inline] NF_HOOK include/linux/netfilter.h:305 [inline] ndisc_send_skb+0xa35/0xe40 net/ipv6/ndisc.c:505 ndisc_send_rs+0x4ec/0x680 net/ipv6/ndisc.c:699 addrconf_rs_timer+0x22e/0x5f0 net/ipv6/addrconf.c:3879 call_timer_fn+0x95/0x170 kernel/time/timer.c:1404 expire_timers kernel/time/timer.c:1449 [inline] __run_timers+0x7a6/0x9a0 kernel/time/timer.c:1771 run_timer_softirq+0x4a/0x90 kernel/time/timer.c:1784 __do_softirq+0x333/0x7c4 arch/x86/include/asm/paravirt.h:766 invoke_softirq kernel/softirq.c:373 [inline] irq_exit+0x227/0x230 kernel/softirq.c:413 exiting_irq arch/x86/include/asm/apic.h:536 [inline] smp_apic_timer_interrupt+0x113/0x280 arch/x86/kernel/apic/apic.c:1137 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:830 arch_local_irq_restore arch/x86/include/asm/paravirt.h:756 [inline] lock_release+0x4c7/0x780 kernel/locking/lockdep.c:4509 rcu_lock_release+0x15/0x20 include/linux/rcupdate.h:213 rcu_read_unlock include/linux/rcupdate.h:653 [inline] __unlock_page_memcg+0x126/0x140 mm/memcontrol.c:2137 unlock_page_memcg+0x33/0x40 mm/memcontrol.c:2146 page_remove_file_rmap+0x5b1/0x720 mm/rmap.c:1252 page_remove_rmap+0xb0/0x690 mm/rmap.c:1303 zap_pte_range mm/memory.c:1059 [inline] zap_pmd_range mm/memory.c:1161 [inline] zap_pud_range mm/memory.c:1190 [inline] zap_p4d_range mm/memory.c:1211 [inline] unmap_page_range+0x1764/0x2450 mm/memory.c:1232 unmap_single_vma+0x1d4/0x2e0 mm/memory.c:1277 unmap_vmas+0x163/0x2a0 mm/memory.c:1309 exit_mmap+0x27b/0x530 mm/mmap.c:3149 __mmput+0x120/0x3a0 kernel/fork.c:1065 mmput+0x5d/0x70 kernel/fork.c:1086 exit_mm+0x50a/0x590 kernel/exit.c:547 do_exit+0x565/0x21a0 kernel/exit.c:866 do_group_exit+0x15c/0x2b0 kernel/exit.c:983 get_signal+0x4ac/0x1d60 kernel/signal.c:2734 do_signal+0x37/0x640 arch/x86/kernel/signal.c:815 exit_to_usermode_loop arch/x86/entry/common.c:159 [inline] prepare_exit_to_usermode+0x303/0x580 arch/x86/entry/common.c:194 syscall_return_slowpath+0x113/0x4a0 arch/x86/entry/common.c:274 do_syscall_64+0x11f/0x1c0 arch/x86/entry/common.c:300 entry_SYSCALL_64_after_hwframe+0x49/0xbe to a SOFTIRQ-irq-unsafe lock: (&block->lock){+.+.} ... which became SOFTIRQ-irq-unsafe at: ... lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __mutex_lock_common+0x161/0x2820 kernel/locking/mutex.c:956 __mutex_lock kernel/locking/mutex.c:1103 [inline] mutex_lock_nested+0x1b/0x30 kernel/locking/mutex.c:1118 tcf_chain0_head_change_cb_add net/sched/cls_api.c:740 [inline] tcf_block_get_ext+0x751/0x1a80 net/sched/cls_api.c:1294 tcf_block_get+0xc0/0x130 net/sched/cls_api.c:1333 sfb_init+0x34/0xa0 net/sched/sch_sfb.c:555 qdisc_create+0x7e7/0x13e0 net/sched/sch_api.c:1237 tc_modify_qdisc+0x989/0x1ea0 net/sched/sch_api.c:1652 rtnetlink_rcv_msg+0x889/0xd40 net/core/rtnetlink.c:5223 netlink_rcv_skb+0x19e/0x3d0 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:5241 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x787/0x900 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x993/0xc50 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:637 [inline] sock_sendmsg net/socket.c:657 [inline] ___sys_sendmsg+0x60d/0x910 net/socket.c:2311 __sys_sendmsg net/socket.c:2356 [inline] __do_sys_sendmsg net/socket.c:2365 [inline] __se_sys_sendmsg net/socket.c:2363 [inline] __x64_sys_sendmsg+0x17c/0x200 net/socket.c:2363 do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe other info that might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&block->lock); local_irq_disable(); lock(&(&sch->q.lock)->rlock); lock(&block->lock); lock(&(&sch->q.lock)->rlock); *** DEADLOCK *** 2 locks held by syz-executor.1/789: #0: ffffffff88b01b50 (rtnl_mutex){+.+.}, at: rtnl_lock net/core/rtnetlink.c:72 [inline] #0: ffffffff88b01b50 (rtnl_mutex){+.+.}, at: rtnetlink_rcv_msg+0x83c/0xd40 net/core/rtnetlink.c:5220 #1: ffff88808a891300 (&(&sch->q.lock)->rlock){+.-.}, at: spin_lock_bh include/linux/spinlock.h:343 [inline] #1: ffff88808a891300 (&(&sch->q.lock)->rlock){+.-.}, at: sch_tree_lock include/net/sch_generic.h:544 [inline] #1: ffff88808a891300 (&(&sch->q.lock)->rlock){+.-.}, at: sfb_change+0x284/0xd30 net/sched/sch_sfb.c:519 the dependencies between SOFTIRQ-irq-safe lock and the holding lock: -> (&(&sch->q.lock)->rlock){+.-.} { HARDIRQ-ON-W at: lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline] _raw_spin_lock_bh+0x34/0x50 kernel/locking/spinlock.c:175 spin_lock_bh include/linux/spinlock.h:343 [inline] some_qdisc_is_busy net/sched/sch_generic.c:1168 [inline] dev_deactivate_many+0x73e/0x1370 net/sched/sch_generic.c:1220 dev_deactivate+0x136/0x200 net/sched/sch_generic.c:1236 linkwatch_do_dev+0x106/0x160 net/core/link_watch.c:157 __linkwatch_run_queue+0x446/0x730 net/core/link_watch.c:204 linkwatch_event+0x4c/0x60 net/core/link_watch.c:243 process_one_work+0x7ef/0x10e0 kernel/workqueue.c:2269 worker_thread+0xc01/0x1630 kernel/workqueue.c:2415 kthread+0x332/0x350 kernel/kthread.c:255 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 IN-SOFTIRQ-W at: lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2d/0x40 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:338 [inline] __dev_xmit_skb net/core/dev.c:3506 [inline] __dev_queue_xmit+0xdda/0x3010 net/core/dev.c:3842 dev_queue_xmit+0x17/0x20 net/core/dev.c:3906 neigh_resolve_output+0x60c/0x6b0 net/core/neighbour.c:1490 neigh_output include/net/neighbour.h:511 [inline] ip6_finish_output2+0x102c/0x13d0 net/ipv6/ip6_output.c:116 __ip6_finish_output+0x693/0x910 net/ipv6/ip6_output.c:142 ip6_finish_output+0x52/0x1e0 net/ipv6/ip6_output.c:152 NF_HOOK_COND include/linux/netfilter.h:294 [inline] ip6_output+0x26f/0x390 net/ipv6/ip6_output.c:175 dst_output include/net/dst.h:436 [inline] NF_HOOK include/linux/netfilter.h:305 [inline] ndisc_send_skb+0xa35/0xe40 net/ipv6/ndisc.c:505 ndisc_send_rs+0x4ec/0x680 net/ipv6/ndisc.c:699 addrconf_rs_timer+0x22e/0x5f0 net/ipv6/addrconf.c:3879 call_timer_fn+0x95/0x170 kernel/time/timer.c:1404 expire_timers kernel/time/timer.c:1449 [inline] __run_timers+0x7a6/0x9a0 kernel/time/timer.c:1771 run_timer_softirq+0x4a/0x90 kernel/time/timer.c:1784 __do_softirq+0x333/0x7c4 arch/x86/include/asm/paravirt.h:766 invoke_softirq kernel/softirq.c:373 [inline] irq_exit+0x227/0x230 kernel/softirq.c:413 exiting_irq arch/x86/include/asm/apic.h:536 [inline] smp_apic_timer_interrupt+0x113/0x280 arch/x86/kernel/apic/apic.c:1137 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:830 arch_local_irq_restore arch/x86/include/asm/paravirt.h:756 [inline] lock_release+0x4c7/0x780 kernel/locking/lockdep.c:4509 rcu_lock_release+0x15/0x20 include/linux/rcupdate.h:213 rcu_read_unlock include/linux/rcupdate.h:653 [inline] __unlock_page_memcg+0x126/0x140 mm/memcontrol.c:2137 unlock_page_memcg+0x33/0x40 mm/memcontrol.c:2146 page_remove_file_rmap+0x5b1/0x720 mm/rmap.c:1252 page_remove_rmap+0xb0/0x690 mm/rmap.c:1303 zap_pte_range mm/memory.c:1059 [inline] zap_pmd_range mm/memory.c:1161 [inline] zap_pud_range mm/memory.c:1190 [inline] zap_p4d_range mm/memory.c:1211 [inline] unmap_page_range+0x1764/0x2450 mm/memory.c:1232 unmap_single_vma+0x1d4/0x2e0 mm/memory.c:1277 unmap_vmas+0x163/0x2a0 mm/memory.c:1309 exit_mmap+0x27b/0x530 mm/mmap.c:3149 __mmput+0x120/0x3a0 kernel/fork.c:1065 mmput+0x5d/0x70 kernel/fork.c:1086 exit_mm+0x50a/0x590 kernel/exit.c:547 do_exit+0x565/0x21a0 kernel/exit.c:866 do_group_exit+0x15c/0x2b0 kernel/exit.c:983 get_signal+0x4ac/0x1d60 kernel/signal.c:2734 do_signal+0x37/0x640 arch/x86/kernel/signal.c:815 exit_to_usermode_loop arch/x86/entry/common.c:159 [inline] prepare_exit_to_usermode+0x303/0x580 arch/x86/entry/common.c:194 syscall_return_slowpath+0x113/0x4a0 arch/x86/entry/common.c:274 do_syscall_64+0x11f/0x1c0 arch/x86/entry/common.c:300 entry_SYSCALL_64_after_hwframe+0x49/0xbe INITIAL USE at: lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:135 [inline] _raw_spin_lock_bh+0x34/0x50 kernel/locking/spinlock.c:175 spin_lock_bh include/linux/spinlock.h:343 [inline] some_qdisc_is_busy net/sched/sch_generic.c:1168 [inline] dev_deactivate_many+0x73e/0x1370 net/sched/sch_generic.c:1220 dev_deactivate+0x136/0x200 net/sched/sch_generic.c:1236 linkwatch_do_dev+0x106/0x160 net/core/link_watch.c:157 __linkwatch_run_queue+0x446/0x730 net/core/link_watch.c:204 linkwatch_event+0x4c/0x60 net/core/link_watch.c:243 process_one_work+0x7ef/0x10e0 kernel/workqueue.c:2269 worker_thread+0xc01/0x1630 kernel/workqueue.c:2415 kthread+0x332/0x350 kernel/kthread.c:255 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 } ... key at: [] qdisc_alloc.__key+0x0/0x10 ... acquired at: lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __mutex_lock_common+0x161/0x2820 kernel/locking/mutex.c:956 __mutex_lock kernel/locking/mutex.c:1103 [inline] mutex_lock_nested+0x1b/0x30 kernel/locking/mutex.c:1118 tcf_chain0_head_change_cb_del+0x30/0x390 net/sched/cls_api.c:774 tcf_block_put_ext+0x3d/0x2a0 net/sched/cls_api.c:1345 tcf_block_put+0x6e/0x90 net/sched/cls_api.c:1358 sfb_destroy+0x47/0x70 net/sched/sch_sfb.c:467 qdisc_destroy+0x147/0x4d0 net/sched/sch_generic.c:968 qdisc_put+0x5d/0x90 net/sched/sch_generic.c:995 sfb_change+0x52d/0xd30 net/sched/sch_sfb.c:522 qdisc_change net/sched/sch_api.c:1321 [inline] tc_modify_qdisc+0x184d/0x1ea0 net/sched/sch_api.c:1623 rtnetlink_rcv_msg+0x889/0xd40 net/core/rtnetlink.c:5223 netlink_rcv_skb+0x19e/0x3d0 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:5241 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x787/0x900 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x993/0xc50 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:637 [inline] sock_sendmsg net/socket.c:657 [inline] ___sys_sendmsg+0x60d/0x910 net/socket.c:2311 __sys_sendmsg net/socket.c:2356 [inline] __do_sys_sendmsg net/socket.c:2365 [inline] __se_sys_sendmsg net/socket.c:2363 [inline] __x64_sys_sendmsg+0x17c/0x200 net/socket.c:2363 do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe the dependencies between the lock to be acquired and SOFTIRQ-irq-unsafe lock: -> (&block->lock){+.+.} { HARDIRQ-ON-W at: lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __mutex_lock_common+0x161/0x2820 kernel/locking/mutex.c:956 __mutex_lock kernel/locking/mutex.c:1103 [inline] mutex_lock_nested+0x1b/0x30 kernel/locking/mutex.c:1118 tcf_chain0_head_change_cb_add net/sched/cls_api.c:740 [inline] tcf_block_get_ext+0x751/0x1a80 net/sched/cls_api.c:1294 tcf_block_get+0xc0/0x130 net/sched/cls_api.c:1333 sfb_init+0x34/0xa0 net/sched/sch_sfb.c:555 qdisc_create+0x7e7/0x13e0 net/sched/sch_api.c:1237 tc_modify_qdisc+0x989/0x1ea0 net/sched/sch_api.c:1652 rtnetlink_rcv_msg+0x889/0xd40 net/core/rtnetlink.c:5223 netlink_rcv_skb+0x19e/0x3d0 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:5241 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x787/0x900 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x993/0xc50 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:637 [inline] sock_sendmsg net/socket.c:657 [inline] ___sys_sendmsg+0x60d/0x910 net/socket.c:2311 __sys_sendmsg net/socket.c:2356 [inline] __do_sys_sendmsg net/socket.c:2365 [inline] __se_sys_sendmsg net/socket.c:2363 [inline] __x64_sys_sendmsg+0x17c/0x200 net/socket.c:2363 do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe SOFTIRQ-ON-W at: lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __mutex_lock_common+0x161/0x2820 kernel/locking/mutex.c:956 __mutex_lock kernel/locking/mutex.c:1103 [inline] mutex_lock_nested+0x1b/0x30 kernel/locking/mutex.c:1118 tcf_chain0_head_change_cb_add net/sched/cls_api.c:740 [inline] tcf_block_get_ext+0x751/0x1a80 net/sched/cls_api.c:1294 tcf_block_get+0xc0/0x130 net/sched/cls_api.c:1333 sfb_init+0x34/0xa0 net/sched/sch_sfb.c:555 qdisc_create+0x7e7/0x13e0 net/sched/sch_api.c:1237 tc_modify_qdisc+0x989/0x1ea0 net/sched/sch_api.c:1652 rtnetlink_rcv_msg+0x889/0xd40 net/core/rtnetlink.c:5223 netlink_rcv_skb+0x19e/0x3d0 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:5241 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x787/0x900 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x993/0xc50 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:637 [inline] sock_sendmsg net/socket.c:657 [inline] ___sys_sendmsg+0x60d/0x910 net/socket.c:2311 __sys_sendmsg net/socket.c:2356 [inline] __do_sys_sendmsg net/socket.c:2365 [inline] __se_sys_sendmsg net/socket.c:2363 [inline] __x64_sys_sendmsg+0x17c/0x200 net/socket.c:2363 do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe INITIAL USE at: lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __mutex_lock_common+0x161/0x2820 kernel/locking/mutex.c:956 __mutex_lock kernel/locking/mutex.c:1103 [inline] mutex_lock_nested+0x1b/0x30 kernel/locking/mutex.c:1118 tcf_chain0_head_change_cb_add net/sched/cls_api.c:740 [inline] tcf_block_get_ext+0x751/0x1a80 net/sched/cls_api.c:1294 tcf_block_get+0xc0/0x130 net/sched/cls_api.c:1333 sfb_init+0x34/0xa0 net/sched/sch_sfb.c:555 qdisc_create+0x7e7/0x13e0 net/sched/sch_api.c:1237 tc_modify_qdisc+0x989/0x1ea0 net/sched/sch_api.c:1652 rtnetlink_rcv_msg+0x889/0xd40 net/core/rtnetlink.c:5223 netlink_rcv_skb+0x19e/0x3d0 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:5241 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x787/0x900 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x993/0xc50 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:637 [inline] sock_sendmsg net/socket.c:657 [inline] ___sys_sendmsg+0x60d/0x910 net/socket.c:2311 __sys_sendmsg net/socket.c:2356 [inline] __do_sys_sendmsg net/socket.c:2365 [inline] __se_sys_sendmsg net/socket.c:2363 [inline] __x64_sys_sendmsg+0x17c/0x200 net/socket.c:2363 do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe } ... key at: [] tcf_block_create.__key+0x0/0x10 ... acquired at: lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __mutex_lock_common+0x161/0x2820 kernel/locking/mutex.c:956 __mutex_lock kernel/locking/mutex.c:1103 [inline] mutex_lock_nested+0x1b/0x30 kernel/locking/mutex.c:1118 tcf_chain0_head_change_cb_del+0x30/0x390 net/sched/cls_api.c:774 tcf_block_put_ext+0x3d/0x2a0 net/sched/cls_api.c:1345 tcf_block_put+0x6e/0x90 net/sched/cls_api.c:1358 sfb_destroy+0x47/0x70 net/sched/sch_sfb.c:467 qdisc_destroy+0x147/0x4d0 net/sched/sch_generic.c:968 qdisc_put+0x5d/0x90 net/sched/sch_generic.c:995 sfb_change+0x52d/0xd30 net/sched/sch_sfb.c:522 qdisc_change net/sched/sch_api.c:1321 [inline] tc_modify_qdisc+0x184d/0x1ea0 net/sched/sch_api.c:1623 rtnetlink_rcv_msg+0x889/0xd40 net/core/rtnetlink.c:5223 netlink_rcv_skb+0x19e/0x3d0 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:5241 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x787/0x900 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x993/0xc50 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:637 [inline] sock_sendmsg net/socket.c:657 [inline] ___sys_sendmsg+0x60d/0x910 net/socket.c:2311 __sys_sendmsg net/socket.c:2356 [inline] __do_sys_sendmsg net/socket.c:2365 [inline] __se_sys_sendmsg net/socket.c:2363 [inline] __x64_sys_sendmsg+0x17c/0x200 net/socket.c:2363 do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe stack backtrace: CPU: 1 PID: 789 Comm: syz-executor.1 Tainted: G W 5.3.0+ #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+0x1d8/0x2f8 lib/dump_stack.c:113 print_bad_irq_dependency kernel/locking/lockdep.c:2095 [inline] check_irq_usage kernel/locking/lockdep.c:2293 [inline] check_prev_add kernel/locking/lockdep.c:2480 [inline] check_prevs_add kernel/locking/lockdep.c:2581 [inline] validate_chain+0x7be6/0x7c00 kernel/locking/lockdep.c:2971 __lock_acquire+0xc75/0x1be0 kernel/locking/lockdep.c:3955 lock_acquire+0x158/0x250 kernel/locking/lockdep.c:4487 __mutex_lock_common+0x161/0x2820 kernel/locking/mutex.c:956 __mutex_lock kernel/locking/mutex.c:1103 [inline] mutex_lock_nested+0x1b/0x30 kernel/locking/mutex.c:1118 tcf_chain0_head_change_cb_del+0x30/0x390 net/sched/cls_api.c:774 tcf_block_put_ext+0x3d/0x2a0 net/sched/cls_api.c:1345 tcf_block_put+0x6e/0x90 net/sched/cls_api.c:1358 sfb_destroy+0x47/0x70 net/sched/sch_sfb.c:467 qdisc_destroy+0x147/0x4d0 net/sched/sch_generic.c:968 qdisc_put+0x5d/0x90 net/sched/sch_generic.c:995 sfb_change+0x52d/0xd30 net/sched/sch_sfb.c:522 qdisc_change net/sched/sch_api.c:1321 [inline] tc_modify_qdisc+0x184d/0x1ea0 net/sched/sch_api.c:1623 rtnetlink_rcv_msg+0x889/0xd40 net/core/rtnetlink.c:5223 netlink_rcv_skb+0x19e/0x3d0 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:5241 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x787/0x900 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x993/0xc50 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:637 [inline] sock_sendmsg net/socket.c:657 [inline] ___sys_sendmsg+0x60d/0x910 net/socket.c:2311 __sys_sendmsg net/socket.c:2356 [inline] __do_sys_sendmsg net/socket.c:2365 [inline] __se_sys_sendmsg net/socket.c:2363 [inline] __x64_sys_sendmsg+0x17c/0x200 net/socket.c:2363 do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x459a09 Code: fd b7 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 cb b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007f111566ec78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000459a09 RDX: 0000000000000000 RSI: 0000000020000240 RDI: 0000000000000009 RBP: 000000000075c118 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f111566f6d4 R13: 00000000004c7933 R14: 00000000004dd328 R15: 00000000ffffffff BUG: sleeping function called from invalid context at kernel/locking/mutex.c:935 in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 789, name: syz-executor.1 INFO: lockdep is turned off. Preemption disabled at: [] spin_lock_bh include/linux/spinlock.h:343 [inline] [] sch_tree_lock include/net/sch_generic.h:544 [inline] [] sfb_change+0x284/0xd30 net/sched/sch_sfb.c:519 CPU: 1 PID: 789 Comm: syz-executor.1 Tainted: G W 5.3.0+ #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+0x1d8/0x2f8 lib/dump_stack.c:113 ___might_sleep+0x448/0x5e0 kernel/sched/core.c:6807 __might_sleep+0x8f/0x100 kernel/sched/core.c:6760 __mutex_lock_common+0x4e/0x2820 kernel/locking/mutex.c:935 __mutex_lock kernel/locking/mutex.c:1103 [inline] mutex_lock_nested+0x1b/0x30 kernel/locking/mutex.c:1118 refcount_dec_and_mutex_lock+0x2f/0x60 lib/refcount.c:319 __tcf_block_put+0x31/0x290 net/sched/cls_api.c:1124 tcf_block_put_ext+0x16e/0x2a0 net/sched/cls_api.c:1348 tcf_block_put+0x6e/0x90 net/sched/cls_api.c:1358 sfb_destroy+0x47/0x70 net/sched/sch_sfb.c:467 qdisc_destroy+0x147/0x4d0 net/sched/sch_generic.c:968 qdisc_put+0x5d/0x90 net/sched/sch_generic.c:995 sfb_change+0x52d/0xd30 net/sched/sch_sfb.c:522 qdisc_change net/sched/sch_api.c:1321 [inline] tc_modify_qdisc+0x184d/0x1ea0 net/sched/sch_api.c:1623 rtnetlink_rcv_msg+0x889/0xd40 net/core/rtnetlink.c:5223 netlink_rcv_skb+0x19e/0x3d0 net/netlink/af_netlink.c:2477 rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:5241 netlink_unicast_kernel net/netlink/af_netlink.c:1302 [inline] netlink_unicast+0x787/0x900 net/netlink/af_netlink.c:1328 netlink_sendmsg+0x993/0xc50 net/netlink/af_netlink.c:1917 sock_sendmsg_nosec net/socket.c:637 [inline] sock_sendmsg net/socket.c:657 [inline] ___sys_sendmsg+0x60d/0x910 net/socket.c:2311 __sys_sendmsg net/socket.c:2356 [inline] __do_sys_sendmsg net/socket.c:2365 [inline] __se_sys_sendmsg net/socket.c:2363 [inline] __x64_sys_sendmsg+0x17c/0x200 net/socket.c:2363 do_syscall_64+0xf7/0x1c0 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x459a09 Code: fd b7 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 cb b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007f111566ec78 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 0000000000459a09 RDX: 0000000000000000 RSI: 0000000020000240 RDI: 0000000000000009 RBP: 000000000075c118 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f111566f6d4 R13: 00000000004c7933 R14: 00000000004dd328 R15: 00000000ffffffff