===================================================== WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected 6.8.0-syzkaller-08951-gfe46a7dd189e #0 Not tainted ----------------------------------------------------- syz-executor.3/5436 [HC0[0]:SC1[5]:HE0:SE0] is trying to acquire: ffff88807ef1f020 (&htab->buckets[i].lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline] ffff88807ef1f020 (&htab->buckets[i].lock){+.-.}-{2:2}, at: sock_hash_delete_elem+0xcb/0x260 net/core/sock_map.c:939 and this task is already holding: ffff8880150a0018 (&pool->lock){-.-.}-{2:2}, at: __queue_work+0x39e/0x1170 kernel/workqueue.c:2360 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 kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 __queue_work+0x39e/0x1170 kernel/workqueue.c:2360 queue_work_on+0xf4/0x120 kernel/workqueue.c:2435 tick_nohz_activate kernel/time/tick-sched.c:1491 [inline] tick_setup_sched_timer+0x47c/0x790 kernel/time/tick-sched.c:1592 hrtimer_switch_to_hres kernel/time/hrtimer.c:750 [inline] hrtimer_run_queues+0x33c/0x450 kernel/time/hrtimer.c:1918 run_local_timers kernel/time/timer.c:2453 [inline] update_process_times+0xcf/0x220 kernel/time/timer.c:2475 tick_periodic+0x7e/0x230 kernel/time/tick-common.c:100 tick_handle_periodic+0x45/0x120 kernel/time/tick-common.c:112 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1032 [inline] __sysvec_apic_timer_interrupt+0x10f/0x410 arch/x86/kernel/apic/apic.c:1049 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x90/0xb0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 console_flush_all+0xa19/0xd70 kernel/printk/printk.c:2979 console_unlock+0xae/0x290 kernel/printk/printk.c:3042 vprintk_emit kernel/printk/printk.c:2342 [inline] vprintk_emit+0x11a/0x5a0 kernel/printk/printk.c:2297 vprintk+0x7f/0xa0 kernel/printk/printk_safe.c:45 _printk+0xc8/0x100 kernel/printk/printk.c:2367 __clocksource_select+0x33f/0x400 kernel/time/clocksource.c:1046 clocksource_select kernel/time/clocksource.c:1061 [inline] clocksource_done_booting+0x39/0x50 kernel/time/clocksource.c:1085 do_one_initcall+0x128/0x690 init/main.c:1241 do_initcall_level init/main.c:1303 [inline] do_initcalls init/main.c:1319 [inline] do_basic_setup init/main.c:1338 [inline] kernel_init_freeable+0x69d/0xc40 init/main.c:1550 kernel_init+0x1c/0x2a0 init/main.c:1439 ret_from_fork+0x45/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 kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xcb/0x260 net/core/sock_map.c:939 ___bpf_prog_run+0x3e51/0xae80 kernel/bpf/core.c:1997 __bpf_prog_run32+0xc1/0x100 kernel/bpf/core.c:2236 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run2+0x151/0x420 kernel/trace/bpf_trace.c:2420 __bpf_trace_contention_end+0xca/0x110 include/trace/events/lock.h:122 trace_contention_end+0xce/0x120 include/trace/events/lock.h:122 __mutex_lock_common kernel/locking/mutex.c:617 [inline] __mutex_lock+0x19c/0x9c0 kernel/locking/mutex.c:752 bdev_release+0x161/0xb30 block/bdev.c:1028 blkdev_release+0x15/0x20 block/fops.c:628 __fput+0x270/0xb80 fs/file_table.c:422 __fput_sync+0x47/0x50 fs/file_table.c:507 __do_sys_close fs/open.c:1556 [inline] __se_sys_close fs/open.c:1541 [inline] __x64_sys_close+0x86/0x100 fs/open.c:1541 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xd2/0x260 arch/x86/entry/common.c:83 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 *** 6 locks held by syz-executor.3/5436: #0: ffff88802cbba070 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read include/linux/mm.h:663 [inline] #0: ffff88802cbba070 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1e2/0x950 mm/memory.c:5626 #1: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:298 [inline] #1: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:750 [inline] #1: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: ieee80211_rx_napi+0xa6/0x400 net/mac80211/rx.c:5469 #2: ffff88807d1516d0 (&local->rx_path_lock){+.-.}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline] #2: ffff88807d1516d0 (&local->rx_path_lock){+.-.}-{2:2}, at: ieee80211_rx_handlers+0xdd/0x95c0 net/mac80211/rx.c:4159 #3: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:298 [inline] #3: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:750 [inline] #3: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: __queue_work+0xf2/0x1170 kernel/workqueue.c:2324 #4: ffff8880150a0018 (&pool->lock){-.-.}-{2:2}, at: __queue_work+0x39e/0x1170 kernel/workqueue.c:2360 #5: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:298 [inline] #5: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:750 [inline] #5: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2380 [inline] #5: ffffffff8d7b08e0 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run2+0xe4/0x420 kernel/trace/bpf_trace.c:2420 the dependencies between HARDIRQ-irq-safe lock and the holding lock: -> (&pool->lock){-.-.}-{2:2} { IN-HARDIRQ-W at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 __queue_work+0x39e/0x1170 kernel/workqueue.c:2360 queue_work_on+0xf4/0x120 kernel/workqueue.c:2435 tick_nohz_activate kernel/time/tick-sched.c:1491 [inline] tick_setup_sched_timer+0x47c/0x790 kernel/time/tick-sched.c:1592 hrtimer_switch_to_hres kernel/time/hrtimer.c:750 [inline] hrtimer_run_queues+0x33c/0x450 kernel/time/hrtimer.c:1918 run_local_timers kernel/time/timer.c:2453 [inline] update_process_times+0xcf/0x220 kernel/time/timer.c:2475 tick_periodic+0x7e/0x230 kernel/time/tick-common.c:100 tick_handle_periodic+0x45/0x120 kernel/time/tick-common.c:112 local_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1032 [inline] __sysvec_apic_timer_interrupt+0x10f/0x410 arch/x86/kernel/apic/apic.c:1049 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x90/0xb0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 console_flush_all+0xa19/0xd70 kernel/printk/printk.c:2979 console_unlock+0xae/0x290 kernel/printk/printk.c:3042 vprintk_emit kernel/printk/printk.c:2342 [inline] vprintk_emit+0x11a/0x5a0 kernel/printk/printk.c:2297 vprintk+0x7f/0xa0 kernel/printk/printk_safe.c:45 _printk+0xc8/0x100 kernel/printk/printk.c:2367 __clocksource_select+0x33f/0x400 kernel/time/clocksource.c:1046 clocksource_select kernel/time/clocksource.c:1061 [inline] clocksource_done_booting+0x39/0x50 kernel/time/clocksource.c:1085 do_one_initcall+0x128/0x690 init/main.c:1241 do_initcall_level init/main.c:1303 [inline] do_initcalls init/main.c:1319 [inline] do_basic_setup init/main.c:1338 [inline] kernel_init_freeable+0x69d/0xc40 init/main.c:1550 kernel_init+0x1c/0x2a0 init/main.c:1439 ret_from_fork+0x45/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 kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 __queue_work+0x39e/0x1170 kernel/workqueue.c:2360 call_timer_fn+0x1a0/0x5b0 kernel/time/timer.c:1792 expire_timers kernel/time/timer.c:1838 [inline] __run_timers+0x567/0xab0 kernel/time/timer.c:2408 __run_timer_base kernel/time/timer.c:2419 [inline] __run_timer_base kernel/time/timer.c:2412 [inline] run_timer_base+0x111/0x190 kernel/time/timer.c:2428 run_timer_softirq+0x1a/0x40 kernel/time/timer.c:2438 __do_softirq+0x218/0x8de kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu kernel/softirq.c:633 [inline] irq_exit_rcu+0xb9/0x120 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x95/0xb0 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+0xf/0x20 arch/x86/kernel/process.c:742 default_idle_call+0x6d/0xb0 kernel/sched/idle.c:117 cpuidle_idle_call kernel/sched/idle.c:191 [inline] do_idle+0x32c/0x3f0 kernel/sched/idle.c:332 cpu_startup_entry+0x4f/0x60 kernel/sched/idle.c:430 rest_init+0x16f/0x2b0 init/main.c:730 arch_call_rest_init+0x13/0x40 init/main.c:831 start_kernel+0x3a3/0x490 init/main.c:1077 x86_64_start_reservations+0x18/0x30 arch/x86/kernel/head64.c:509 x86_64_start_kernel+0xb2/0xc0 arch/x86/kernel/head64.c:490 common_startup_64+0x13e/0x148 INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock include/linux/spinlock_api_smp.h:133 [inline] _raw_spin_lock+0x2e/0x40 kernel/locking/spinlock.c:154 __queue_work+0x39e/0x1170 kernel/workqueue.c:2360 queue_work_on+0xf4/0x120 kernel/workqueue.c:2435 queue_work include/linux/workqueue.h:605 [inline] start_poll_synchronize_rcu_expedited+0x147/0x180 kernel/rcu/tree_exp.h:1017 rcu_init+0x1625/0x20c0 kernel/rcu/tree.c:5240 start_kernel+0x19e/0x490 init/main.c:969 x86_64_start_reservations+0x18/0x30 arch/x86/kernel/head64.c:509 x86_64_start_kernel+0xb2/0xc0 arch/x86/kernel/head64.c:490 common_startup_64+0x13e/0x148 } ... key at: [] __key.17+0x0/0x40 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 kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xcb/0x260 net/core/sock_map.c:939 ___bpf_prog_run+0x3e51/0xae80 kernel/bpf/core.c:1997 __bpf_prog_run32+0xc1/0x100 kernel/bpf/core.c:2236 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run2+0x151/0x420 kernel/trace/bpf_trace.c:2420 __bpf_trace_contention_end+0xca/0x110 include/trace/events/lock.h:122 trace_contention_end+0xce/0x120 include/trace/events/lock.h:122 __mutex_lock_common kernel/locking/mutex.c:617 [inline] __mutex_lock+0x19c/0x9c0 kernel/locking/mutex.c:752 bdev_release+0x161/0xb30 block/bdev.c:1028 blkdev_release+0x15/0x20 block/fops.c:628 __fput+0x270/0xb80 fs/file_table.c:422 __fput_sync+0x47/0x50 fs/file_table.c:507 __do_sys_close fs/open.c:1556 [inline] __se_sys_close fs/open.c:1541 [inline] __x64_sys_close+0x86/0x100 fs/open.c:1541 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xd2/0x260 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x6d/0x75 IN-SOFTIRQ-W at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xcb/0x260 net/core/sock_map.c:939 ___bpf_prog_run+0x3e51/0xae80 kernel/bpf/core.c:1997 __bpf_prog_run32+0xc1/0x100 kernel/bpf/core.c:2236 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run2+0x151/0x420 kernel/trace/bpf_trace.c:2420 __bpf_trace_contention_end+0xca/0x110 include/trace/events/lock.h:122 trace_contention_end.constprop.0+0xe2/0x140 include/trace/events/lock.h:122 __pv_queued_spin_lock_slowpath+0x266/0xc80 kernel/locking/qspinlock.c:560 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:584 [inline] queued_spin_lock_slowpath arch/x86/include/asm/qspinlock.h:51 [inline] queued_spin_lock include/asm-generic/qspinlock.h:114 [inline] do_raw_spin_lock+0x210/0x2c0 kernel/locking/spinlock_debug.c:116 spin_lock include/linux/spinlock.h:351 [inline] mac80211_hwsim_tx_frame_no_nl.isra.0+0x753/0x1310 drivers/net/wireless/virtual/mac80211_hwsim.c:1805 mac80211_hwsim_tx_frame+0x1eb/0x2a0 drivers/net/wireless/virtual/mac80211_hwsim.c:2200 __mac80211_hwsim_beacon_tx drivers/net/wireless/virtual/mac80211_hwsim.c:2217 [inline] mac80211_hwsim_beacon_tx+0x503/0x880 drivers/net/wireless/virtual/mac80211_hwsim.c:2300 __iterate_interfaces+0x2d2/0x580 net/mac80211/util.c:772 ieee80211_iterate_active_interfaces_atomic+0x71/0x1b0 net/mac80211/util.c:808 mac80211_hwsim_beacon+0x105/0x200 drivers/net/wireless/virtual/mac80211_hwsim.c:2326 __run_hrtimer kernel/time/hrtimer.c:1692 [inline] __hrtimer_run_queues+0x20c/0xc20 kernel/time/hrtimer.c:1756 hrtimer_run_softirq+0x17d/0x350 kernel/time/hrtimer.c:1773 __do_softirq+0x218/0x8de kernel/softirq.c:554 run_ksoftirqd kernel/softirq.c:924 [inline] run_ksoftirqd+0x35/0x60 kernel/softirq.c:916 smpboot_thread_fn+0x661/0xa10 kernel/smpboot.c:164 kthread+0x2c1/0x3a0 kernel/kthread.c:388 ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243 INITIAL USE at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xcb/0x260 net/core/sock_map.c:939 ___bpf_prog_run+0x3e51/0xae80 kernel/bpf/core.c:1997 __bpf_prog_run32+0xc1/0x100 kernel/bpf/core.c:2236 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run2+0x151/0x420 kernel/trace/bpf_trace.c:2420 __bpf_trace_contention_end+0xca/0x110 include/trace/events/lock.h:122 trace_contention_end+0xce/0x120 include/trace/events/lock.h:122 __mutex_lock_common kernel/locking/mutex.c:617 [inline] __mutex_lock+0x19c/0x9c0 kernel/locking/mutex.c:752 bdev_release+0x161/0xb30 block/bdev.c:1028 blkdev_release+0x15/0x20 block/fops.c:628 __fput+0x270/0xb80 fs/file_table.c:422 __fput_sync+0x47/0x50 fs/file_table.c:507 __do_sys_close fs/open.c:1556 [inline] __se_sys_close fs/open.c:1541 [inline] __x64_sys_close+0x86/0x100 fs/open.c:1541 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xd2/0x260 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x6d/0x75 } ... key at: [] __key.0+0x0/0x40 ... acquired at: lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xcb/0x260 net/core/sock_map.c:939 ___bpf_prog_run+0x3e51/0xae80 kernel/bpf/core.c:1997 __bpf_prog_run32+0xc1/0x100 kernel/bpf/core.c:2236 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run2+0x151/0x420 kernel/trace/bpf_trace.c:2420 __bpf_trace_contention_end+0xca/0x110 include/trace/events/lock.h:122 trace_contention_end.constprop.0+0xe2/0x140 include/trace/events/lock.h:122 __pv_queued_spin_lock_slowpath+0x266/0xc80 kernel/locking/qspinlock.c:560 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:584 [inline] queued_spin_lock_slowpath arch/x86/include/asm/qspinlock.h:51 [inline] queued_spin_lock include/asm-generic/qspinlock.h:114 [inline] do_raw_spin_lock+0x210/0x2c0 kernel/locking/spinlock_debug.c:116 __queue_work+0x39e/0x1170 kernel/workqueue.c:2360 queue_work_on+0xf4/0x120 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 net/mac80211/rx.c:4035 [inline] ieee80211_rx_handlers+0x6546/0x95c0 net/mac80211/rx.c:4193 ieee80211_invoke_rx_handlers net/mac80211/rx.c:4223 [inline] ieee80211_prepare_and_rx_handle+0x2b6a/0x6ec0 net/mac80211/rx.c:5071 ieee80211_rx_for_interface+0x10a/0x1f0 net/mac80211/rx.c:5156 __ieee80211_rx_handle_packet net/mac80211/rx.c:5312 [inline] ieee80211_rx_list+0x10e2/0x2e90 net/mac80211/rx.c:5447 ieee80211_rx_napi+0xdd/0x400 net/mac80211/rx.c:5470 ieee80211_rx include/net/mac80211.h:5083 [inline] ieee80211_tasklet_handler+0xd6/0x130 net/mac80211/main.c:438 tasklet_action_common.constprop.0+0x24c/0x3e0 kernel/softirq.c:781 __do_softirq+0x218/0x8de kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu kernel/softirq.c:633 [inline] irq_exit_rcu+0xb9/0x120 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 seqcount_lockdep_reader_access include/linux/seqlock.h:74 [inline] ktime_get_coarse_real_ts64+0xb0/0x200 kernel/time/timekeeping.c:2262 current_time fs/inode.c:2498 [inline] inode_set_ctime_current fs/inode.c:2512 [inline] inode_update_timestamps+0x15a/0x560 fs/inode.c:1861 generic_update_time+0x1e/0xf0 fs/inode.c:1900 inode_update_time fs/inode.c:1920 [inline] __file_update_time fs/inode.c:2108 [inline] file_update_time+0x137/0x170 fs/inode.c:2138 fault_dirty_shared_page+0x48b/0x5a0 mm/memory.c:3008 do_shared_fault mm/memory.c:4846 [inline] do_fault mm/memory.c:4892 [inline] do_pte_missing mm/memory.c:3745 [inline] handle_pte_fault mm/memory.c:5164 [inline] __handle_mm_fault+0x34c7/0x4920 mm/memory.c:5305 handle_mm_fault+0x476/0xa00 mm/memory.c:5470 do_user_addr_fault+0x426/0x1080 arch/x86/mm/fault.c:1362 handle_page_fault arch/x86/mm/fault.c:1505 [inline] exc_page_fault+0x5c/0xc0 arch/x86/mm/fault.c:1563 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 stack backtrace: CPU: 1 PID: 5436 Comm: syz-executor.3 Not tainted 6.8.0-syzkaller-08951-gfe46a7dd189e #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+0x116/0x1f0 lib/dump_stack.c:114 print_bad_irq_dependency kernel/locking/lockdep.c:2626 [inline] check_irq_usage+0xe3c/0x1490 kernel/locking/lockdep.c:2865 check_prev_add kernel/locking/lockdep.c:3138 [inline] check_prevs_add kernel/locking/lockdep.c:3253 [inline] validate_chain kernel/locking/lockdep.c:3869 [inline] __lock_acquire+0x248e/0x3b30 kernel/locking/lockdep.c:5137 lock_acquire kernel/locking/lockdep.c:5754 [inline] lock_acquire+0x1b1/0x540 kernel/locking/lockdep.c:5719 __raw_spin_lock_bh include/linux/spinlock_api_smp.h:126 [inline] _raw_spin_lock_bh+0x33/0x40 kernel/locking/spinlock.c:178 spin_lock_bh include/linux/spinlock.h:356 [inline] sock_hash_delete_elem+0xcb/0x260 net/core/sock_map.c:939 ___bpf_prog_run+0x3e51/0xae80 kernel/bpf/core.c:1997 __bpf_prog_run32+0xc1/0x100 kernel/bpf/core.c:2236 bpf_dispatcher_nop_func include/linux/bpf.h:1234 [inline] __bpf_prog_run include/linux/filter.h:657 [inline] bpf_prog_run include/linux/filter.h:664 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2381 [inline] bpf_trace_run2+0x151/0x420 kernel/trace/bpf_trace.c:2420 __bpf_trace_contention_end+0xca/0x110 include/trace/events/lock.h:122 trace_contention_end.constprop.0+0xe2/0x140 include/trace/events/lock.h:122 __pv_queued_spin_lock_slowpath+0x266/0xc80 kernel/locking/qspinlock.c:560 pv_queued_spin_lock_slowpath arch/x86/include/asm/paravirt.h:584 [inline] queued_spin_lock_slowpath arch/x86/include/asm/qspinlock.h:51 [inline] queued_spin_lock include/asm-generic/qspinlock.h:114 [inline] do_raw_spin_lock+0x210/0x2c0 kernel/locking/spinlock_debug.c:116 __queue_work+0x39e/0x1170 kernel/workqueue.c:2360 queue_work_on+0xf4/0x120 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 net/mac80211/rx.c:4035 [inline] ieee80211_rx_handlers+0x6546/0x95c0 net/mac80211/rx.c:4193 ieee80211_invoke_rx_handlers net/mac80211/rx.c:4223 [inline] ieee80211_prepare_and_rx_handle+0x2b6a/0x6ec0 net/mac80211/rx.c:5071 ieee80211_rx_for_interface+0x10a/0x1f0 net/mac80211/rx.c:5156 __ieee80211_rx_handle_packet net/mac80211/rx.c:5312 [inline] ieee80211_rx_list+0x10e2/0x2e90 net/mac80211/rx.c:5447 ieee80211_rx_napi+0xdd/0x400 net/mac80211/rx.c:5470 ieee80211_rx include/net/mac80211.h:5083 [inline] ieee80211_tasklet_handler+0xd6/0x130 net/mac80211/main.c:438 tasklet_action_common.constprop.0+0x24c/0x3e0 kernel/softirq.c:781 __do_softirq+0x218/0x8de kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu kernel/softirq.c:633 [inline] irq_exit_rcu+0xb9/0x120 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:__seqprop_raw_spinlock_sequence include/linux/seqlock.h:226 [inline] RIP: 0010:ktime_get_coarse_real_ts64+0xb0/0x200 kernel/time/timekeeping.c:2262 Code: 24 40 48 c7 c7 48 d7 7d 8d e8 cc 5a f0 ff 9c 5b 81 e3 00 02 00 00 31 ff 48 89 de e8 1a 0c 12 00 48 85 db 58 0f 85 18 01 00 00 fb 10 12 00 eb 07 e8 f4 10 12 00 f3 90 8b 1d 7c ef 02 0c 31 ff RSP: 0000:ffffc90003abfb68 EFLAGS: 00000293 RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff817ae8b7 RDX: ffff88802b0c1e00 RSI: ffffffff817ae8c2 RDI: 0000000000000007 RBP: ffffc90003abfc18 R08: 0000000000000007 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000006 R13: fffff52000757f84 R14: fffff52000757f83 R15: dffffc0000000000 current_time fs/inode.c:2498 [inline] inode_set_ctime_current fs/inode.c:2512 [inline] inode_update_timestamps+0x15a/0x560 fs/inode.c:1861 generic_update_time+0x1e/0xf0 fs/inode.c:1900 inode_update_time fs/inode.c:1920 [inline] __file_update_time fs/inode.c:2108 [inline] file_update_time+0x137/0x170 fs/inode.c:2138 fault_dirty_shared_page+0x48b/0x5a0 mm/memory.c:3008 do_shared_fault mm/memory.c:4846 [inline] do_fault mm/memory.c:4892 [inline] do_pte_missing mm/memory.c:3745 [inline] handle_pte_fault mm/memory.c:5164 [inline] __handle_mm_fault+0x34c7/0x4920 mm/memory.c:5305 handle_mm_fault+0x476/0xa00 mm/memory.c:5470 do_user_addr_fault+0x426/0x1080 arch/x86/mm/fault.c:1362 handle_page_fault arch/x86/mm/fault.c:1505 [inline] exc_page_fault+0x5c/0xc0 arch/x86/mm/fault.c:1563 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 RIP: 0033:0x7fd37a028266 Code: 1f 44 00 00 48 8b 0d 91 d4 ca 00 4c 63 05 7a d4 ca 00 48 8b 05 7b d4 ca 00 49 01 c8 48 39 c8 72 13 4c 39 c0 73 0e 48 8d 50 04 <89> 38 48 89 15 61 d4 ca 00 c3 52 48 8d 35 c3 0e 0a 00 48 89 c2 48 RSP: 002b:00007fff732d1028 EFLAGS: 00010287 RAX: 0000001b30528000 RBX: 00007fd37a1ac018 RCX: 0000001b30520000 RDX: 0000001b30528004 RSI: 0000000080000000 RDI: 0000000084359e1e RBP: 0000000084359e1e R08: 0000001b30b20000 R09: 0000000000001e20 R10: 0000000084359e22 R11: 0000000000000246 R12: 0000000000000016 R13: 0000000000000001 R14: 00007fd37a1a0000 R15: ffffffff84359e96 ------------[ cut here ]------------ raw_local_irq_restore() called with IRQs enabled WARNING: CPU: 1 PID: 5436 at kernel/locking/irqflag-debug.c:10 warn_bogus_irq_restore+0x29/0x30 kernel/locking/irqflag-debug.c:10 Modules linked in: CPU: 1 PID: 5436 Comm: syz-executor.3 Not tainted 6.8.0-syzkaller-08951-gfe46a7dd189e #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024 RIP: 0010:warn_bogus_irq_restore+0x29/0x30 kernel/locking/irqflag-debug.c:10 Code: 90 f3 0f 1e fa 90 80 3d 72 d0 b5 04 00 74 06 90 c3 cc cc cc cc c6 05 63 d0 b5 04 01 90 48 c7 c7 c0 b1 0c 8b e8 78 6b 7d f6 90 <0f> 0b 90 90 eb df 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 RSP: 0000:ffffc90000a087b0 EFLAGS: 00010286 RAX: 0000000000000000 RBX: 0000000000000200 RCX: ffffffff814fafe9 RDX: ffff88802b0c1e00 RSI: ffffffff814faff6 RDI: 0000000000000001 RBP: 0000000000000200 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000008 R13: 0000000000000001 R14: ffff888015081000 R15: ffffc90000a08d00 FS: 00005555795ab480(0000) GS:ffff8880b9500000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000001b30528000 CR3: 0000000024fbe000 CR4: 00000000003506f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: queue_work_on+0x115/0x120 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 net/mac80211/rx.c:4035 [inline] ieee80211_rx_handlers+0x6546/0x95c0 net/mac80211/rx.c:4193 ieee80211_invoke_rx_handlers net/mac80211/rx.c:4223 [inline] ieee80211_prepare_and_rx_handle+0x2b6a/0x6ec0 net/mac80211/rx.c:5071 ieee80211_rx_for_interface+0x10a/0x1f0 net/mac80211/rx.c:5156 __ieee80211_rx_handle_packet net/mac80211/rx.c:5312 [inline] ieee80211_rx_list+0x10e2/0x2e90 net/mac80211/rx.c:5447 ieee80211_rx_napi+0xdd/0x400 net/mac80211/rx.c:5470 ieee80211_rx include/net/mac80211.h:5083 [inline] ieee80211_tasklet_handler+0xd6/0x130 net/mac80211/main.c:438 tasklet_action_common.constprop.0+0x24c/0x3e0 kernel/softirq.c:781 __do_softirq+0x218/0x8de kernel/softirq.c:554 invoke_softirq kernel/softirq.c:428 [inline] __irq_exit_rcu kernel/softirq.c:633 [inline] irq_exit_rcu+0xb9/0x120 kernel/softirq.c:645 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1043 [inline] sysvec_apic_timer_interrupt+0x95/0xb0 arch/x86/kernel/apic/apic.c:1043 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:__seqprop_raw_spinlock_sequence include/linux/seqlock.h:226 [inline] RIP: 0010:ktime_get_coarse_real_ts64+0xb0/0x200 kernel/time/timekeeping.c:2262 Code: 24 40 48 c7 c7 48 d7 7d 8d e8 cc 5a f0 ff 9c 5b 81 e3 00 02 00 00 31 ff 48 89 de e8 1a 0c 12 00 48 85 db 58 0f 85 18 01 00 00 fb 10 12 00 eb 07 e8 f4 10 12 00 f3 90 8b 1d 7c ef 02 0c 31 ff RSP: 0000:ffffc90003abfb68 EFLAGS: 00000293 RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff817ae8b7 RDX: ffff88802b0c1e00 RSI: ffffffff817ae8c2 RDI: 0000000000000007 RBP: ffffc90003abfc18 R08: 0000000000000007 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000006 R13: fffff52000757f84 R14: fffff52000757f83 R15: dffffc0000000000 current_time fs/inode.c:2498 [inline] inode_set_ctime_current fs/inode.c:2512 [inline] inode_update_timestamps+0x15a/0x560 fs/inode.c:1861 generic_update_time+0x1e/0xf0 fs/inode.c:1900 inode_update_time fs/inode.c:1920 [inline] __file_update_time fs/inode.c:2108 [inline] file_update_time+0x137/0x170 fs/inode.c:2138 fault_dirty_shared_page+0x48b/0x5a0 mm/memory.c:3008 do_shared_fault mm/memory.c:4846 [inline] do_fault mm/memory.c:4892 [inline] do_pte_missing mm/memory.c:3745 [inline] handle_pte_fault mm/memory.c:5164 [inline] __handle_mm_fault+0x34c7/0x4920 mm/memory.c:5305 handle_mm_fault+0x476/0xa00 mm/memory.c:5470 do_user_addr_fault+0x426/0x1080 arch/x86/mm/fault.c:1362 handle_page_fault arch/x86/mm/fault.c:1505 [inline] exc_page_fault+0x5c/0xc0 arch/x86/mm/fault.c:1563 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623 RIP: 0033:0x7fd37a028266 Code: 1f 44 00 00 48 8b 0d 91 d4 ca 00 4c 63 05 7a d4 ca 00 48 8b 05 7b d4 ca 00 49 01 c8 48 39 c8 72 13 4c 39 c0 73 0e 48 8d 50 04 <89> 38 48 89 15 61 d4 ca 00 c3 52 48 8d 35 c3 0e 0a 00 48 89 c2 48 RSP: 002b:00007fff732d1028 EFLAGS: 00010287 RAX: 0000001b30528000 RBX: 00007fd37a1ac018 RCX: 0000001b30520000 RDX: 0000001b30528004 RSI: 0000000080000000 RDI: 0000000084359e1e RBP: 0000000084359e1e R08: 0000001b30b20000 R09: 0000000000001e20 R10: 0000000084359e22 R11: 0000000000000246 R12: 0000000000000016 R13: 0000000000000001 R14: 00007fd37a1a0000 R15: ffffffff84359e96 ---------------- Code disassembly (best guess): 0: 24 40 and $0x40,%al 2: 48 c7 c7 48 d7 7d 8d mov $0xffffffff8d7dd748,%rdi 9: e8 cc 5a f0 ff call 0xfff05ada e: 9c pushf f: 5b pop %rbx 10: 81 e3 00 02 00 00 and $0x200,%ebx 16: 31 ff xor %edi,%edi 18: 48 89 de mov %rbx,%rsi 1b: e8 1a 0c 12 00 call 0x120c3a 20: 48 85 db test %rbx,%rbx 23: 58 pop %rax 24: 0f 85 18 01 00 00 jne 0x142 * 2a: e8 fb 10 12 00 call 0x12112a <-- trapping instruction 2f: eb 07 jmp 0x38 31: e8 f4 10 12 00 call 0x12112a 36: f3 90 pause 38: 8b 1d 7c ef 02 0c mov 0xc02ef7c(%rip),%ebx # 0xc02efba 3e: 31 ff xor %edi,%edi