===================================================== WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected 6.8.0-syzkaller-05243-g14bb1e8c8d4a #0 Not tainted ----------------------------------------------------- udevd/5066 [HC0[0]:SC1[5]:HE0:SE0] is trying to acquire: ffff88802b653d68 (&htab->buckets[i].lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline] ffff88802b653d68 (&htab->buckets[i].lock){+.-.}-{2:2}, at: sock_hash_delete_elem+0xb0/0x300 net/core/sock_map.c:939 and this task is already holding: ffff888014ca0018 (&pool->lock){-.-.}-{2:2}, at: __queue_work+0x6ec/0xec0 which would create a new lock dependency: (&pool->lock){-.-.}-{2:2} -> (&htab->buckets[i].lock){+.-.}-{2:2} but this new dependency connects a HARDIRQ-irq-safe lock: (&pool->lock){-.-.}-{2:2} ... which became HARDIRQ-irq-safe at: lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 __queue_work+0x6ec/0xec0 queue_work_on+0x14f/0x250 kernel/workqueue.c:2435 hrtimer_switch_to_hres kernel/time/hrtimer.c:750 [inline] hrtimer_run_queues+0x154/0x460 kernel/time/hrtimer.c:1918 run_local_timers kernel/time/timer.c:2453 [inline] update_process_times+0x80/0x230 kernel/time/timer.c:2475 tick_periodic+0x190/0x220 kernel/time/tick-common.c:100 tick_handle_periodic+0x4a/0x160 kernel/time/tick-common.c:112 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1032 [inline] __sysvec_apic_timer_interrupt+0x107/0x3a0 arch/x86/kernel/apic/apic.c:1049 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0xa1/0xc0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 unwind_next_frame+0xfe4/0x2a00 arch/x86/kernel/unwind_orc.c:581 arch_stack_walk+0x151/0x1b0 arch/x86/kernel/stacktrace.c:25 stack_trace_save+0x118/0x1d0 kernel/stacktrace.c:122 kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3f/0x80 mm/kasan/common.c:68 poison_kmalloc_redzone mm/kasan/common.c:370 [inline] __kasan_kmalloc+0x98/0xb0 mm/kasan/common.c:387 kasan_kmalloc include/linux/kasan.h:211 [inline] kmalloc_trace+0x1d9/0x360 mm/slub.c:4012 kmalloc include/linux/slab.h:590 [inline] kzalloc include/linux/slab.h:711 [inline] alloc_super+0x59/0x9d0 fs/super.c:317 sget+0x1fc/0x620 fs/super.c:840 mount_single+0x39/0x1b0 fs/super.c:1742 legacy_get_tree+0xee/0x190 fs/fs_context.c:662 vfs_get_tree+0x90/0x2a0 fs/super.c:1779 fc_mount fs/namespace.c:1125 [inline] vfs_kern_mount+0xbc/0x160 fs/namespace.c:1155 simple_pin_fs+0xe1/0x160 fs/libfs.c:1016 tracefs_start_creating+0x3d/0x210 fs/tracefs/inode.c:462 tracefs_create_file+0x9c/0x650 fs/tracefs/inode.c:567 trace_create_file+0x32/0x70 kernel/trace/trace.c:9167 init_trace_printk_function_export+0x46/0x50 kernel/trace/trace_printk.c:387 do_one_initcall+0x238/0x830 init/main.c:1241 do_initcall_level+0x157/0x210 init/main.c:1303 do_initcalls+0x3f/0x80 init/main.c:1319 kernel_init_freeable+0x435/0x5d0 init/main.c:1557 kernel_init+0x1d/0x2a0 init/main.c:1446 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 to a HARDIRQ-irq-unsafe lock: (&htab->buckets[i].lock){+.-.}-{2:2} ... which became HARDIRQ-irq-unsafe at: ... lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x35/0x50 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_update_common+0x20c/0xa30 net/core/sock_map.c:1007 sock_map_update_elem_sys+0x5a4/0x910 net/core/sock_map.c:581 map_update_elem+0x53a/0x6f0 kernel/bpf/syscall.c:1641 __sys_bpf+0x76f/0x810 kernel/bpf/syscall.c:5619 __do_sys_bpf kernel/bpf/syscall.c:5738 [inline] __se_sys_bpf kernel/bpf/syscall.c:5736 [inline] __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:5736 do_syscall_64+0xfb/0x240 entry_SYSCALL_64_after_hwframe+0x6d/0x75 other info that might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&htab->buckets[i].lock); local_irq_disable(); lock(&pool->lock); lock(&htab->buckets[i].lock); lock(&pool->lock); *** DEADLOCK *** 10 locks held by udevd/5066: #0: ffff888070872420 (sb_writers#5){.+.+}-{0:0}, at: mnt_want_write+0x3f/0x90 fs/namespace.c:409 #1: ffff888022b94b00 (&type->i_mutex_dir_key#5/1){+.+.}-{3:3}, at: inode_lock_nested include/linux/fs.h:828 [inline] #1: ffff888022b94b00 (&type->i_mutex_dir_key#5/1){+.+.}-{3:3}, at: filename_create+0x260/0x540 fs/namei.c:3893 #2: ffffffff8e797d30 (tomoyo_ss){.+.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:116 [inline] #2: ffffffff8e797d30 (tomoyo_ss){.+.+}-{0:0}, at: srcu_read_lock include/linux/srcu.h:215 [inline] #2: ffffffff8e797d30 (tomoyo_ss){.+.+}-{0:0}, at: tomoyo_read_lock security/tomoyo/common.h:1108 [inline] #2: ffffffff8e797d30 (tomoyo_ss){.+.+}-{0:0}, at: tomoyo_path_perm+0x287/0x740 security/tomoyo/file.c:821 #3: ffffffff8e236790 (remove_cache_srcu){.+.+}-{0:0}, at: srcu_lock_acquire include/linux/srcu.h:116 [inline] #3: ffffffff8e236790 (remove_cache_srcu){.+.+}-{0:0}, at: srcu_read_lock+0x24/0x50 include/linux/srcu.h:215 #4: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:298 [inline] #4: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:750 [inline] #4: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: ieee80211_rx_napi+0xd6/0x3c0 net/mac80211/rx.c:5469 #5: ffff888062ae96d0 (&local->rx_path_lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline] #5: ffff888062ae96d0 (&local->rx_path_lock){+.-.}-{2:2}, at: ieee80211_rx_handlers+0xf8/0xb6f0 net/mac80211/rx.c:4159 #6: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:298 [inline] #6: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:750 [inline] #6: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: __queue_work+0x198/0xec0 kernel/workqueue.c:2324 #7: ffff888014ca0018 (&pool->lock){-.-.}-{2:2}, at: __queue_work+0x6ec/0xec0 #8: ffffffff8e818c20 (fill_pool_map-wait-type-override){+.+.}-{3:3}, at: debug_objects_fill_pool+0x80/0x9b0 lib/debugobjects.c:614 #9: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:298 [inline] #9: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:750 [inline] #9: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2395 [inline] #9: ffffffff8e131920 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run4+0x244/0x580 kernel/trace/bpf_trace.c:2439 the dependencies between HARDIRQ-irq-safe lock and the holding lock: -> (&pool->lock){-.-.}-{2:2} { IN-HARDIRQ-W at: lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 __queue_work+0x6ec/0xec0 queue_work_on+0x14f/0x250 kernel/workqueue.c:2435 hrtimer_switch_to_hres kernel/time/hrtimer.c:750 [inline] hrtimer_run_queues+0x154/0x460 kernel/time/hrtimer.c:1918 run_local_timers kernel/time/timer.c:2453 [inline] update_process_times+0x80/0x230 kernel/time/timer.c:2475 tick_periodic+0x190/0x220 kernel/time/tick-common.c:100 tick_handle_periodic+0x4a/0x160 kernel/time/tick-common.c:112 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1032 [inline] __sysvec_apic_timer_interrupt+0x107/0x3a0 arch/x86/kernel/apic/apic.c:1049 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0xa1/0xc0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 unwind_next_frame+0xfe4/0x2a00 arch/x86/kernel/unwind_orc.c:581 arch_stack_walk+0x151/0x1b0 arch/x86/kernel/stacktrace.c:25 stack_trace_save+0x118/0x1d0 kernel/stacktrace.c:122 kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3f/0x80 mm/kasan/common.c:68 poison_kmalloc_redzone mm/kasan/common.c:370 [inline] __kasan_kmalloc+0x98/0xb0 mm/kasan/common.c:387 kasan_kmalloc include/linux/kasan.h:211 [inline] kmalloc_trace+0x1d9/0x360 mm/slub.c:4012 kmalloc include/linux/slab.h:590 [inline] kzalloc include/linux/slab.h:711 [inline] alloc_super+0x59/0x9d0 fs/super.c:317 sget+0x1fc/0x620 fs/super.c:840 mount_single+0x39/0x1b0 fs/super.c:1742 legacy_get_tree+0xee/0x190 fs/fs_context.c:662 vfs_get_tree+0x90/0x2a0 fs/super.c:1779 fc_mount fs/namespace.c:1125 [inline] vfs_kern_mount+0xbc/0x160 fs/namespace.c:1155 simple_pin_fs+0xe1/0x160 fs/libfs.c:1016 tracefs_start_creating+0x3d/0x210 fs/tracefs/inode.c:462 tracefs_create_file+0x9c/0x650 fs/tracefs/inode.c:567 trace_create_file+0x32/0x70 kernel/trace/trace.c:9167 init_trace_printk_function_export+0x46/0x50 kernel/trace/trace_printk.c:387 do_one_initcall+0x238/0x830 init/main.c:1241 do_initcall_level+0x157/0x210 init/main.c:1303 do_initcalls+0x3f/0x80 init/main.c:1319 kernel_init_freeable+0x435/0x5d0 init/main.c:1557 kernel_init+0x1d/0x2a0 init/main.c:1446 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 IN-SOFTIRQ-W at: lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 __queue_work+0x6ec/0xec0 call_timer_fn+0x17e/0x600 kernel/time/timer.c:1792 expire_timers kernel/time/timer.c:1838 [inline] __run_timers kernel/time/timer.c:2408 [inline] __run_timer_base+0x695/0x8e0 kernel/time/timer.c:2419 run_timer_base kernel/time/timer.c:2428 [inline] run_timer_softirq+0xb7/0x170 kernel/time/timer.c:2438 __do_softirq+0x2bc/0x943 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu+0xf2/0x1c0 kernel/softirq.c:633 irq_exit_rcu+0x9/0x30 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 native_safe_halt arch/x86/include/asm/irqflags.h:48 [inline] arch_safe_halt arch/x86/include/asm/irqflags.h:86 [inline] default_idle+0x13/0x20 arch/x86/kernel/process.c:742 default_idle_call+0x74/0xb0 kernel/sched/idle.c:117 cpuidle_idle_call kernel/sched/idle.c:191 [inline] do_idle+0x22f/0x5d0 kernel/sched/idle.c:332 cpu_startup_entry+0x42/0x60 kernel/sched/idle.c:430 rest_init+0x2e0/0x300 init/main.c:730 arch_call_rest_init+0xe/0x10 init/main.c:831 start_kernel+0x47a/0x500 init/main.c:1077 x86_64_start_reservations+0x2a/0x30 arch/x86/kernel/head64.c:509 x86_64_start_kernel+0x99/0xa0 arch/x86/kernel/head64.c:490 common_startup_64+0x13e/0x147 INITIAL USE at: lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 __queue_work+0x6ec/0xec0 queue_work_on+0x14f/0x250 kernel/workqueue.c:2435 queue_work include/linux/workqueue.h:605 [inline] start_poll_synchronize_rcu_expedited+0xf7/0x150 kernel/rcu/tree_exp.h:1017 rcu_init+0xea/0x140 kernel/rcu/tree.c:5240 start_kernel+0x1f7/0x500 init/main.c:969 x86_64_start_reservations+0x2a/0x30 arch/x86/kernel/head64.c:509 x86_64_start_kernel+0x99/0xa0 arch/x86/kernel/head64.c:490 common_startup_64+0x13e/0x147 } ... key at: [] init_worker_pool.__key+0x0/0x20 the dependencies between the lock to be acquired and HARDIRQ-irq-unsafe lock: -> (&htab->buckets[i].lock){+.-.}-{2:2} { HARDIRQ-ON-W at: lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x35/0x50 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_update_common+0x20c/0xa30 net/core/sock_map.c:1007 sock_map_update_elem_sys+0x5a4/0x910 net/core/sock_map.c:581 map_update_elem+0x53a/0x6f0 kernel/bpf/syscall.c:1641 __sys_bpf+0x76f/0x810 kernel/bpf/syscall.c:5619 __do_sys_bpf kernel/bpf/syscall.c:5738 [inline] __se_sys_bpf kernel/bpf/syscall.c:5736 [inline] __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:5736 do_syscall_64+0xfb/0x240 entry_SYSCALL_64_after_hwframe+0x6d/0x75 IN-SOFTIRQ-W at: lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x35/0x50 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xb0/0x300 net/core/sock_map.c:939 bpf_prog_a8aaa52f2e199321+0x4a/0x4e bpf_dispatcher_nop_func include/linux/bpf.h:1233 [inline] __bpf_prog_run include/linux/filter.h:667 [inline] bpf_prog_run include/linux/filter.h:674 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2396 [inline] bpf_trace_run4+0x334/0x580 kernel/trace/bpf_trace.c:2439 trace_mm_page_alloc include/trace/events/kmem.h:177 [inline] __alloc_pages+0x657/0x680 mm/page_alloc.c:4591 __alloc_pages_node include/linux/gfp.h:238 [inline] alloc_pages_node+0x12b/0x1b0 include/linux/gfp.h:261 page_frag_alloc_1k net/core/skbuff.c:250 [inline] __napi_alloc_skb+0x37f/0x540 net/core/skbuff.c:834 napi_alloc_skb include/linux/skbuff.h:3363 [inline] page_to_skb+0x275/0x9b0 drivers/net/virtio_net.c:569 receive_mergeable drivers/net/virtio_net.c:1683 [inline] receive_buf+0x3b3/0x3890 drivers/net/virtio_net.c:1804 virtnet_receive drivers/net/virtio_net.c:2110 [inline] virtnet_poll+0x720/0x18f0 drivers/net/virtio_net.c:2203 __napi_poll+0xcb/0x490 net/core/dev.c:6632 napi_poll net/core/dev.c:6701 [inline] net_rx_action+0x7bb/0x1090 net/core/dev.c:6813 __do_softirq+0x2bc/0x943 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu+0xf2/0x1c0 kernel/softirq.c:633 irq_exit_rcu+0x9/0x30 kernel/softirq.c:645 common_interrupt+0xaa/0xd0 arch/x86/kernel/irq.c:247 asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:693 lock_acquire+0x25b/0x530 kernel/locking/lockdep.c:5758 rcu_lock_acquire include/linux/rcupdate.h:298 [inline] rcu_read_lock include/linux/rcupdate.h:750 [inline] percpu_ref_get_many include/linux/percpu-refcount.h:202 [inline] percpu_ref_get include/linux/percpu-refcount.h:222 [inline] obj_cgroup_get include/linux/memcontrol.h:811 [inline] __memcg_slab_post_alloc_hook+0x166/0x330 mm/slub.c:1976 memcg_slab_post_alloc_hook mm/slub.c:1993 [inline] slab_post_alloc_hook mm/slub.c:3822 [inline] slab_alloc_node mm/slub.c:3860 [inline] kmem_cache_alloc+0x28f/0x350 mm/slub.c:3867 vma_lock_alloc kernel/fork.c:441 [inline] vm_area_dup+0x61/0x290 kernel/fork.c:494 dup_mmap kernel/fork.c:697 [inline] dup_mm kernel/fork.c:1687 [inline] copy_mm+0xd95/0x21b0 kernel/fork.c:1736 copy_process+0x187a/0x3df0 kernel/fork.c:2389 kernel_clone+0x21e/0x8d0 kernel/fork.c:2796 __do_sys_clone kernel/fork.c:2939 [inline] __se_sys_clone kernel/fork.c:2923 [inline] __x64_sys_clone+0x258/0x2a0 kernel/fork.c:2923 do_syscall_64+0xfb/0x240 entry_SYSCALL_64_after_hwframe+0x6d/0x75 INITIAL USE at: lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x35/0x50 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_update_common+0x20c/0xa30 net/core/sock_map.c:1007 sock_map_update_elem_sys+0x5a4/0x910 net/core/sock_map.c:581 map_update_elem+0x53a/0x6f0 kernel/bpf/syscall.c:1641 __sys_bpf+0x76f/0x810 kernel/bpf/syscall.c:5619 __do_sys_bpf kernel/bpf/syscall.c:5738 [inline] __se_sys_bpf kernel/bpf/syscall.c:5736 [inline] __x64_sys_bpf+0x7c/0x90 kernel/bpf/syscall.c:5736 do_syscall_64+0xfb/0x240 entry_SYSCALL_64_after_hwframe+0x6d/0x75 } ... key at: [] sock_hash_alloc.__key+0x0/0x20 ... acquired at: lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x35/0x50 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xb0/0x300 net/core/sock_map.c:939 bpf_prog_a8aaa52f2e199321+0x4a/0x4e bpf_dispatcher_nop_func include/linux/bpf.h:1233 [inline] __bpf_prog_run include/linux/filter.h:667 [inline] bpf_prog_run include/linux/filter.h:674 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2396 [inline] bpf_trace_run4+0x334/0x580 kernel/trace/bpf_trace.c:2439 trace_mm_page_alloc include/trace/events/kmem.h:177 [inline] __alloc_pages+0x657/0x680 mm/page_alloc.c:4591 __alloc_pages_node include/linux/gfp.h:238 [inline] alloc_pages_node include/linux/gfp.h:261 [inline] alloc_slab_page+0x5f/0x160 mm/slub.c:2190 allocate_slab mm/slub.c:2354 [inline] new_slab+0x84/0x2f0 mm/slub.c:2407 ___slab_alloc+0xd1b/0x13e0 mm/slub.c:3540 __slab_alloc mm/slub.c:3625 [inline] __slab_alloc_node mm/slub.c:3678 [inline] slab_alloc_node mm/slub.c:3850 [inline] kmem_cache_alloc+0x250/0x350 mm/slub.c:3867 kmem_cache_zalloc include/linux/slab.h:701 [inline] fill_pool lib/debugobjects.c:168 [inline] debug_objects_fill_pool+0x42f/0x9b0 lib/debugobjects.c:615 debug_object_activate+0x135/0x510 lib/debugobjects.c:704 debug_work_activate kernel/workqueue.c:663 [inline] insert_work+0x36/0x330 kernel/workqueue.c:2245 __queue_work+0xc14/0xec0 kernel/workqueue.c:2400 queue_work_on+0x14f/0x250 kernel/workqueue.c:2435 __ieee80211_queue_skb_to_iface net/mac80211/rx.c:233 [inline] ieee80211_queue_skb_to_iface net/mac80211/rx.c:244 [inline] ieee80211_rx_h_mgmt+0x50f/0x710 net/mac80211/rx.c:4035 ieee80211_rx_handlers+0x6a3f/0xb6f0 net/mac80211/rx.c:4193 ieee80211_invoke_rx_handlers net/mac80211/rx.c:4223 [inline] ieee80211_prepare_and_rx_handle+0x31ab/0x6360 net/mac80211/rx.c:5071 __ieee80211_rx_handle_packet net/mac80211/rx.c:5312 [inline] ieee80211_rx_list+0x2cde/0x3780 net/mac80211/rx.c:5447 ieee80211_rx_napi+0x18a/0x3c0 net/mac80211/rx.c:5470 ieee80211_rx include/net/mac80211.h:5083 [inline] ieee80211_tasklet_handler+0xeb/0x1f0 net/mac80211/main.c:438 tasklet_action_common+0x321/0x4d0 kernel/softirq.c:781 __do_softirq+0x2bc/0x943 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu+0xf2/0x1c0 kernel/softirq.c:633 irq_exit_rcu+0x9/0x30 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 put_cpu_partial+0x1b4/0x250 mm/slub.c:2996 __slab_free+0x302/0x410 mm/slub.c:4166 qlink_free mm/kasan/quarantine.c:163 [inline] qlist_free_all+0x5e/0xc0 mm/kasan/quarantine.c:179 kasan_quarantine_reduce+0x14f/0x170 mm/kasan/quarantine.c:286 __kasan_slab_alloc+0x23/0x80 mm/kasan/common.c:322 kasan_slab_alloc include/linux/kasan.h:201 [inline] slab_post_alloc_hook mm/slub.c:3813 [inline] slab_alloc_node mm/slub.c:3860 [inline] __do_kmalloc_node mm/slub.c:3980 [inline] __kmalloc+0x1e0/0x4a0 mm/slub.c:3994 kmalloc include/linux/slab.h:594 [inline] kzalloc include/linux/slab.h:711 [inline] tomoyo_encode2 security/tomoyo/realpath.c:45 [inline] tomoyo_encode+0x26f/0x540 security/tomoyo/realpath.c:80 tomoyo_path_perm+0x3ca/0x740 security/tomoyo/file.c:831 tomoyo_path_symlink+0xde/0x120 security/tomoyo/tomoyo.c:212 security_path_symlink+0xe3/0x140 security/security.c:1871 do_symlinkat+0x136/0x3a0 fs/namei.c:4506 __do_sys_symlink fs/namei.c:4529 [inline] __se_sys_symlink fs/namei.c:4527 [inline] __x64_sys_symlink+0x7e/0x90 fs/namei.c:4527 do_syscall_64+0xfb/0x240 entry_SYSCALL_64_after_hwframe+0x6d/0x75 stack backtrace: CPU: 0 PID: 5066 Comm: udevd Not tainted 6.8.0-syzkaller-05243-g14bb1e8c8d4a #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1e7/0x2e0 lib/dump_stack.c:106 print_bad_irq_dependency kernel/locking/lockdep.c:2626 [inline] check_irq_usage kernel/locking/lockdep.c:2865 [inline] check_prev_add kernel/locking/lockdep.c:3138 [inline] check_prevs_add kernel/locking/lockdep.c:3253 [inline] validate_chain+0x4dc7/0x58e0 kernel/locking/lockdep.c:3869 __lock_acquire+0x1346/0x1fd0 kernel/locking/lockdep.c:5137 lock_acquire+0x1e4/0x530 kernel/locking/lockdep.c:5754 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x35/0x50 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xb0/0x300 net/core/sock_map.c:939 bpf_prog_a8aaa52f2e199321+0x4a/0x4e bpf_dispatcher_nop_func include/linux/bpf.h:1233 [inline] __bpf_prog_run include/linux/filter.h:667 [inline] bpf_prog_run include/linux/filter.h:674 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2396 [inline] bpf_trace_run4+0x334/0x580 kernel/trace/bpf_trace.c:2439 trace_mm_page_alloc include/trace/events/kmem.h:177 [inline] __alloc_pages+0x657/0x680 mm/page_alloc.c:4591 __alloc_pages_node include/linux/gfp.h:238 [inline] alloc_pages_node include/linux/gfp.h:261 [inline] alloc_slab_page+0x5f/0x160 mm/slub.c:2190 allocate_slab mm/slub.c:2354 [inline] new_slab+0x84/0x2f0 mm/slub.c:2407 ___slab_alloc+0xd1b/0x13e0 mm/slub.c:3540 __slab_alloc mm/slub.c:3625 [inline] __slab_alloc_node mm/slub.c:3678 [inline] slab_alloc_node mm/slub.c:3850 [inline] kmem_cache_alloc+0x250/0x350 mm/slub.c:3867 kmem_cache_zalloc include/linux/slab.h:701 [inline] fill_pool lib/debugobjects.c:168 [inline] debug_objects_fill_pool+0x42f/0x9b0 lib/debugobjects.c:615 debug_object_activate+0x135/0x510 lib/debugobjects.c:704 debug_work_activate kernel/workqueue.c:663 [inline] insert_work+0x36/0x330 kernel/workqueue.c:2245 __queue_work+0xc14/0xec0 kernel/workqueue.c:2400 queue_work_on+0x14f/0x250 kernel/workqueue.c:2435 __ieee80211_queue_skb_to_iface net/mac80211/rx.c:233 [inline] ieee80211_queue_skb_to_iface net/mac80211/rx.c:244 [inline] ieee80211_rx_h_mgmt+0x50f/0x710 net/mac80211/rx.c:4035 ieee80211_rx_handlers+0x6a3f/0xb6f0 net/mac80211/rx.c:4193 ieee80211_invoke_rx_handlers net/mac80211/rx.c:4223 [inline] ieee80211_prepare_and_rx_handle+0x31ab/0x6360 net/mac80211/rx.c:5071 __ieee80211_rx_handle_packet net/mac80211/rx.c:5312 [inline] ieee80211_rx_list+0x2cde/0x3780 net/mac80211/rx.c:5447 ieee80211_rx_napi+0x18a/0x3c0 net/mac80211/rx.c:5470 ieee80211_rx include/net/mac80211.h:5083 [inline] ieee80211_tasklet_handler+0xeb/0x1f0 net/mac80211/main.c:438 tasklet_action_common+0x321/0x4d0 kernel/softirq.c:781 __do_softirq+0x2bc/0x943 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu+0xf2/0x1c0 kernel/softirq.c:633 irq_exit_rcu+0x9/0x30 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:put_cpu_partial+0x1b4/0x250 mm/slub.c:2996 Code: 0f 85 b4 00 00 00 48 83 c4 20 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc e8 c8 9b 82 09 f7 c3 00 02 00 00 74 bc fb 4d 85 e4 <75> bb eb c4 90 e8 42 a2 b3 02 85 c0 74 22 83 3d e7 79 99 0d 00 75 RSP: 0018:ffffc900042f7840 EFLAGS: 00000246 RAX: a53074fd3e5fbf00 RBX: 0000000000000282 RCX: ffffffff81720c0a RDX: dffffc0000000000 RSI: ffffffff8baac220 RDI: ffffffff8bfec660 RBP: 0000000000000000 R08: ffffffff92cc752f R09: 1ffffffff2598ea5 R10: dffffc0000000000 R11: fffffbfff2598ea6 R12: 0000000000000000 R13: ffffea000088c200 R14: ffff888029020000 R15: ffff888014c41c80 __slab_free+0x302/0x410 mm/slub.c:4166 qlink_free mm/kasan/quarantine.c:163 [inline] qlist_free_all+0x5e/0xc0 mm/kasan/quarantine.c:179 kasan_quarantine_reduce+0x14f/0x170 mm/kasan/quarantine.c:286 __kasan_slab_alloc+0x23/0x80 mm/kasan/common.c:322 kasan_slab_alloc include/linux/kasan.h:201 [inline] slab_post_alloc_hook mm/slub.c:3813 [inline] slab_alloc_node mm/slub.c:3860 [inline] __do_kmalloc_node mm/slub.c:3980 [inline] __kmalloc+0x1e0/0x4a0 mm/slub.c:3994 kmalloc include/linux/slab.h:594 [inline] kzalloc include/linux/slab.h:711 [inline] tomoyo_encode2 security/tomoyo/realpath.c:45 [inline] tomoyo_encode+0x26f/0x540 security/tomoyo/realpath.c:80 tomoyo_path_perm+0x3ca/0x740 security/tomoyo/file.c:831 tomoyo_path_symlink+0xde/0x120 security/tomoyo/tomoyo.c:212 security_path_symlink+0xe3/0x140 security/security.c:1871 do_symlinkat+0x136/0x3a0 fs/namei.c:4506 __do_sys_symlink fs/namei.c:4529 [inline] __se_sys_symlink fs/namei.c:4527 [inline] __x64_sys_symlink+0x7e/0x90 fs/namei.c:4527 do_syscall_64+0xfb/0x240 entry_SYSCALL_64_after_hwframe+0x6d/0x75 RIP: 0033:0x7ff715117ce7 Code: f0 ff ff 73 01 c3 48 8b 0d 3e 91 0d 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 b8 58 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 11 91 0d 00 f7 d8 64 89 01 48 RSP: 002b:00007ffc3d954368 EFLAGS: 00000206 ORIG_RAX: 0000000000000058 RAX: ffffffffffffffda RBX: 00007ffc3d954378 RCX: 00007ff715117ce7 RDX: 0000000000000000 RSI: 00007ffc3d954378 RDI: 000055ab34b0f0c0 RBP: 000055ab34b0d2a0 R08: 0000000000000000 R09: 00007ffc3d953ce8 R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000041 R13: 000055ab34b0b760 R14: 0000000000000008 R15: 000055ab34af9910 ------------[ cut here ]------------ raw_local_irq_restore() called with IRQs enabled WARNING: CPU: 0 PID: 5066 at kernel/locking/irqflag-debug.c:10 warn_bogus_irq_restore+0x29/0x40 kernel/locking/irqflag-debug.c:10 Modules linked in: CPU: 0 PID: 5066 Comm: udevd Not tainted 6.8.0-syzkaller-05243-g14bb1e8c8d4a #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 RIP: 0010:warn_bogus_irq_restore+0x29/0x40 kernel/locking/irqflag-debug.c:10 Code: 90 f3 0f 1e fa 90 80 3d de 49 01 04 00 74 06 90 c3 cc cc cc cc c6 05 cf 49 01 04 01 90 48 c7 c7 20 ba aa 8b e8 d8 c5 e7 f5 90 <0f> 0b 90 90 90 c3 cc cc cc cc 66 2e 0f 1f 84 00 00 00 00 00 0f 1f RSP: 0018:ffffc900000072b8 EFLAGS: 00010246 RAX: a53074fd3e5fbf00 RBX: 0000000000000200 RCX: ffff888029020000 RDX: 0000000000000301 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffffc90000007398 R08: ffffffff8157cbf2 R09: 1ffff92000000dac R10: dffffc0000000000 R11: fffff52000000dad R12: 0000000000000200 R13: 0000000000000000 R14: 0000000000000246 R15: 1ffff92000000e5c FS: 00007ff7155b9c80(0000) GS:ffff8880b9400000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000002000cf3d CR3: 000000007d76a000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: queue_work_on+0x1ea/0x250 kernel/workqueue.c:2439 __ieee80211_queue_skb_to_iface net/mac80211/rx.c:233 [inline] ieee80211_queue_skb_to_iface net/mac80211/rx.c:244 [inline] ieee80211_rx_h_mgmt+0x50f/0x710 net/mac80211/rx.c:4035 ieee80211_rx_handlers+0x6a3f/0xb6f0 net/mac80211/rx.c:4193 ieee80211_invoke_rx_handlers net/mac80211/rx.c:4223 [inline] ieee80211_prepare_and_rx_handle+0x31ab/0x6360 net/mac80211/rx.c:5071 __ieee80211_rx_handle_packet net/mac80211/rx.c:5312 [inline] ieee80211_rx_list+0x2cde/0x3780 net/mac80211/rx.c:5447 ieee80211_rx_napi+0x18a/0x3c0 net/mac80211/rx.c:5470 ieee80211_rx include/net/mac80211.h:5083 [inline] ieee80211_tasklet_handler+0xeb/0x1f0 net/mac80211/main.c:438 tasklet_action_common+0x321/0x4d0 kernel/softirq.c:781 __do_softirq+0x2bc/0x943 kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu+0xf2/0x1c0 kernel/softirq.c:633 irq_exit_rcu+0x9/0x30 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0xa6/0xc0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:put_cpu_partial+0x1b4/0x250 mm/slub.c:2996 Code: 0f 85 b4 00 00 00 48 83 c4 20 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc e8 c8 9b 82 09 f7 c3 00 02 00 00 74 bc fb 4d 85 e4 <75> bb eb c4 90 e8 42 a2 b3 02 85 c0 74 22 83 3d e7 79 99 0d 00 75 RSP: 0018:ffffc900042f7840 EFLAGS: 00000246 RAX: a53074fd3e5fbf00 RBX: 0000000000000282 RCX: ffffffff81720c0a RDX: dffffc0000000000 RSI: ffffffff8baac220 RDI: ffffffff8bfec660 RBP: 0000000000000000 R08: ffffffff92cc752f R09: 1ffffffff2598ea5 R10: dffffc0000000000 R11: fffffbfff2598ea6 R12: 0000000000000000 R13: ffffea000088c200 R14: ffff888029020000 R15: ffff888014c41c80 __slab_free+0x302/0x410 mm/slub.c:4166 qlink_free mm/kasan/quarantine.c:163 [inline] qlist_free_all+0x5e/0xc0 mm/kasan/quarantine.c:179 kasan_quarantine_reduce+0x14f/0x170 mm/kasan/quarantine.c:286 __kasan_slab_alloc+0x23/0x80 mm/kasan/common.c:322 kasan_slab_alloc include/linux/kasan.h:201 [inline] slab_post_alloc_hook mm/slub.c:3813 [inline] slab_alloc_node mm/slub.c:3860 [inline] __do_kmalloc_node mm/slub.c:3980 [inline] __kmalloc+0x1e0/0x4a0 mm/slub.c:3994 kmalloc include/linux/slab.h:594 [inline] kzalloc include/linux/slab.h:711 [inline] tomoyo_encode2 security/tomoyo/realpath.c:45 [inline] tomoyo_encode+0x26f/0x540 security/tomoyo/realpath.c:80 tomoyo_path_perm+0x3ca/0x740 security/tomoyo/file.c:831 tomoyo_path_symlink+0xde/0x120 security/tomoyo/tomoyo.c:212 security_path_symlink+0xe3/0x140 security/security.c:1871 do_symlinkat+0x136/0x3a0 fs/namei.c:4506 __do_sys_symlink fs/namei.c:4529 [inline] __se_sys_symlink fs/namei.c:4527 [inline] __x64_sys_symlink+0x7e/0x90 fs/namei.c:4527 do_syscall_64+0xfb/0x240 entry_SYSCALL_64_after_hwframe+0x6d/0x75 RIP: 0033:0x7ff715117ce7 Code: f0 ff ff 73 01 c3 48 8b 0d 3e 91 0d 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 b8 58 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 11 91 0d 00 f7 d8 64 89 01 48 RSP: 002b:00007ffc3d954368 EFLAGS: 00000206 ORIG_RAX: 0000000000000058 RAX: ffffffffffffffda RBX: 00007ffc3d954378 RCX: 00007ff715117ce7 RDX: 0000000000000000 RSI: 00007ffc3d954378 RDI: 000055ab34b0f0c0 RBP: 000055ab34b0d2a0 R08: 0000000000000000 R09: 00007ffc3d953ce8 R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000041 R13: 000055ab34b0b760 R14: 0000000000000008 R15: 000055ab34af9910 ---------------- Code disassembly (best guess): 0: 0f 85 b4 00 00 00 jne 0xba 6: 48 83 c4 20 add $0x20,%rsp a: 5b pop %rbx b: 41 5c pop %r12 d: 41 5d pop %r13 f: 41 5e pop %r14 11: 41 5f pop %r15 13: 5d pop %rbp 14: c3 ret 15: cc int3 16: cc int3 17: cc int3 18: cc int3 19: e8 c8 9b 82 09 call 0x9829be6 1e: f7 c3 00 02 00 00 test $0x200,%ebx 24: 74 bc je 0xffffffe2 26: fb sti 27: 4d 85 e4 test %r12,%r12 * 2a: 75 bb jne 0xffffffe7 <-- trapping instruction 2c: eb c4 jmp 0xfffffff2 2e: 90 nop 2f: e8 42 a2 b3 02 call 0x2b3a276 34: 85 c0 test %eax,%eax 36: 74 22 je 0x5a 38: 83 3d e7 79 99 0d 00 cmpl $0x0,0xd9979e7(%rip) # 0xd997a26 3f: 75 .byte 0x75