=====================================================
WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected
6.8.0-syzkaller-08951-gfe46a7dd189e #0 Not tainted
-----------------------------------------------------
kworker/1:4/5151 [HC0[0]:SC0[2]:HE0:SE0] is trying to acquire:
ffff888060ddc020 (&htab->buckets[i].lock){+...}-{2:2}, at: spin_lock_bh include/linux/spinlock.h:356 [inline]
ffff888060ddc020 (&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:
ffff8880b953d618 (&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+0x112/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
  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+0x84/0x140 fs/inode.c:2512
  simple_inode_init_ts fs/libfs.c:1982 [inline]
  pseudo_fs_fill_super+0x25c/0x480 fs/libfs.c:629
  vfs_get_super fs/super.c:1268 [inline]
  get_tree_nodev+0xdd/0x190 fs/super.c:1287
  vfs_get_tree+0x92/0x380 fs/super.c:1779
  fc_mount fs/namespace.c:1125 [inline]
  vfs_kern_mount.part.0+0xcf/0x170 fs/namespace.c:1155
  vfs_kern_mount fs/namespace.c:5208 [inline]
  kern_mount+0x49/0xc0 fs/namespace.c:5208
  secretmem_init+0x3e/0xa0 mm/secretmem.c:286
  do_one_initcall+0x12b/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+0x48/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_free+0x130/0x820 net/core/sock_map.c:1154
  bpf_map_free_deferred+0x1d1/0x420 kernel/bpf/syscall.c:734
  process_one_work+0x9ac/0x1a60 kernel/workqueue.c:3254
  process_scheduled_works kernel/workqueue.c:3335 [inline]
  worker_thread+0x6c8/0xf70 kernel/workqueue.c:3416
  kthread+0x2c4/0x3a0 kernel/kthread.c:388
  ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243

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);
  <Interrupt>
    lock(&pool->lock);

 *** DEADLOCK ***

5 locks held by kworker/1:4/5151:
 #0: ffff888015076948 ((wq_completion)rcu_gp){+.+.}-{0:0}, at: process_one_work+0x1296/0x1a60 kernel/workqueue.c:3229
 #1: ffffc900047d7d80 ((work_completion)(&(&ssp->srcu_sup->work)->work)){+.+.}-{0:0}, at: process_one_work+0x906/0x1a60 kernel/workqueue.c:3230
 #2: ffffffff8d7b49e0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:298 [inline]
 #2: ffffffff8d7b49e0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:750 [inline]
 #2: ffffffff8d7b49e0 (rcu_read_lock){....}-{1:2}, at: __queue_work+0xf2/0x1170 kernel/workqueue.c:2324
 #3: ffff8880b953d618 (&pool->lock){-.-.}-{2:2}, at: __queue_work+0x39e/0x1170 kernel/workqueue.c:2360
 #4: ffffffff8d7b49e0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:298 [inline]
 #4: ffffffff8d7b49e0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:750 [inline]
 #4: ffffffff8d7b49e0 (rcu_read_lock){....}-{1:2}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2380 [inline]
 #4: ffffffff8d7b49e0 (rcu_read_lock){....}-{1:2}, at: bpf_trace_run1+0xdc/0x410 kernel/trace/bpf_trace.c:2419

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+0x112/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
                    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+0x84/0x140 fs/inode.c:2512
                    simple_inode_init_ts fs/libfs.c:1982 [inline]
                    pseudo_fs_fill_super+0x25c/0x480 fs/libfs.c:629
                    vfs_get_super fs/super.c:1268 [inline]
                    get_tree_nodev+0xdd/0x190 fs/super.c:1287
                    vfs_get_tree+0x92/0x380 fs/super.c:1779
                    fc_mount fs/namespace.c:1125 [inline]
                    vfs_kern_mount.part.0+0xcf/0x170 fs/namespace.c:1155
                    vfs_kern_mount fs/namespace.c:5208 [inline]
                    kern_mount+0x49/0xc0 fs/namespace.c:5208
                    secretmem_init+0x3e/0xa0 mm/secretmem.c:286
                    do_one_initcall+0x12b/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+0x48/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+0x1a3/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+0x21b/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: [<ffffffff929eede0>] __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_free+0x130/0x820 net/core/sock_map.c:1154
                    bpf_map_free_deferred+0x1d1/0x420 kernel/bpf/syscall.c:734
                    process_one_work+0x9ac/0x1a60 kernel/workqueue.c:3254
                    process_scheduled_works kernel/workqueue.c:3335 [inline]
                    worker_thread+0x6c8/0xf70 kernel/workqueue.c:3416
                    kthread+0x2c4/0x3a0 kernel/kthread.c:388
                    ret_from_fork+0x48/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_free+0x130/0x820 net/core/sock_map.c:1154
                   bpf_map_free_deferred+0x1d1/0x420 kernel/bpf/syscall.c:734
                   process_one_work+0x9ac/0x1a60 kernel/workqueue.c:3254
                   process_scheduled_works kernel/workqueue.c:3335 [inline]
                   worker_thread+0x6c8/0xf70 kernel/workqueue.c:3416
                   kthread+0x2c4/0x3a0 kernel/kthread.c:388
                   ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
                   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243
 }
 ... key      at: [<ffffffff949d0480>] __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_2c29ac5cdc6b1842+0x42/0x4a
   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_run1+0x14c/0x410 kernel/trace/bpf_trace.c:2419
   __bpf_trace_workqueue_activate_work+0x98/0xd0 include/trace/events/workqueue.h:59
   trace_workqueue_activate_work include/trace/events/workqueue.h:59 [inline]
   __queue_work+0xd0d/0x1170 kernel/workqueue.c:2399
   __queue_delayed_work+0x21b/0x2e0 kernel/workqueue.c:2551
   queue_delayed_work_on+0x10e/0x130 kernel/workqueue.c:2595
   srcu_gp_end kernel/rcu/srcutree.c:928 [inline]
   srcu_advance_state kernel/rcu/srcutree.c:1707 [inline]
   process_srcu+0x119a/0x1730 kernel/rcu/srcutree.c:1811
   process_one_work+0x9ac/0x1a60 kernel/workqueue.c:3254
   process_scheduled_works kernel/workqueue.c:3335 [inline]
   worker_thread+0x6c8/0xf70 kernel/workqueue.c:3416
   kthread+0x2c4/0x3a0 kernel/kthread.c:388
   ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243


stack backtrace:
CPU: 1 PID: 5151 Comm: kworker/1:4 Not tainted 6.8.0-syzkaller-08951-gfe46a7dd189e #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
Workqueue: rcu_gp process_srcu
Call Trace:
 <TASK>
 __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_2c29ac5cdc6b1842+0x42/0x4a
 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_run1+0x14c/0x410 kernel/trace/bpf_trace.c:2419
 __bpf_trace_workqueue_activate_work+0x98/0xd0 include/trace/events/workqueue.h:59
 trace_workqueue_activate_work include/trace/events/workqueue.h:59 [inline]
 __queue_work+0xd0d/0x1170 kernel/workqueue.c:2399
 __queue_delayed_work+0x21b/0x2e0 kernel/workqueue.c:2551
 queue_delayed_work_on+0x10e/0x130 kernel/workqueue.c:2595
 srcu_gp_end kernel/rcu/srcutree.c:928 [inline]
 srcu_advance_state kernel/rcu/srcutree.c:1707 [inline]
 process_srcu+0x119a/0x1730 kernel/rcu/srcutree.c:1811
 process_one_work+0x9ac/0x1a60 kernel/workqueue.c:3254
 process_scheduled_works kernel/workqueue.c:3335 [inline]
 worker_thread+0x6c8/0xf70 kernel/workqueue.c:3416
 kthread+0x2c4/0x3a0 kernel/kthread.c:388
 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:243
 </TASK>