============================= [ BUG: Invalid wait context ] 6.12.0-rc6-next-20241105-syzkaller #0 Not tainted ----------------------------- kworker/1:0/14179 is trying to lock: ffff88805ba8aa00 (&trie->lock){....}-{3:3}, at: trie_delete_elem+0x96/0x6a0 kernel/bpf/lpm_trie.c:462 other info that might help us debug this: context-{5:5} 5 locks held by kworker/1:0/14179: #0: ffff88801ac81948 ((wq_completion)events_power_efficient){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3204 [inline] #0: ffff88801ac81948 ((wq_completion)events_power_efficient){+.+.}-{0:0}, at: process_scheduled_works+0x93b/0x1850 kernel/workqueue.c:3310 #1: ffffc9000ca4fd00 ((work_completion)(&(&gc_work->dwork)->work)){+.+.}-{0:0}, at: process_one_work kernel/workqueue.c:3205 [inline] #1: ffffc9000ca4fd00 ((work_completion)(&(&gc_work->dwork)->work)){+.+.}-{0:0}, at: process_scheduled_works+0x976/0x1850 kernel/workqueue.c:3310 #2: ffffffff8e93c160 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #2: ffffffff8e93c160 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #2: ffffffff8e93c160 (rcu_read_lock){....}-{1:3}, at: gc_worker+0x26b/0x1530 net/netfilter/nf_conntrack_core.c:1532 #3: ffff8880b873e798 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x2a/0x140 kernel/sched/core.c:598 #4: ffffffff8e93c160 (rcu_read_lock){....}-{1:3}, at: rcu_lock_acquire include/linux/rcupdate.h:337 [inline] #4: ffffffff8e93c160 (rcu_read_lock){....}-{1:3}, at: rcu_read_lock include/linux/rcupdate.h:849 [inline] #4: ffffffff8e93c160 (rcu_read_lock){....}-{1:3}, at: __bpf_trace_run kernel/trace/bpf_trace.c:2339 [inline] #4: ffffffff8e93c160 (rcu_read_lock){....}-{1:3}, at: bpf_trace_run4+0x244/0x590 kernel/trace/bpf_trace.c:2383 stack backtrace: CPU: 1 UID: 0 PID: 14179 Comm: kworker/1:0 Not tainted 6.12.0-rc6-next-20241105-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Workqueue: events_power_efficient gc_worker Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120 print_lock_invalid_wait_context kernel/locking/lockdep.c:4826 [inline] check_wait_context kernel/locking/lockdep.c:4898 [inline] __lock_acquire+0x15a8/0x2100 kernel/locking/lockdep.c:5176 lock_acquire+0x1ed/0x550 kernel/locking/lockdep.c:5849 __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] _raw_spin_lock_irqsave+0xd5/0x120 kernel/locking/spinlock.c:162 trie_delete_elem+0x96/0x6a0 kernel/bpf/lpm_trie.c:462 bpf_prog_2c29ac5cdc6b1842+0x43/0x47 bpf_dispatcher_nop_func include/linux/bpf.h:1290 [inline] __bpf_prog_run include/linux/filter.h:701 [inline] bpf_prog_run include/linux/filter.h:708 [inline] __bpf_trace_run kernel/trace/bpf_trace.c:2340 [inline] bpf_trace_run4+0x334/0x590 kernel/trace/bpf_trace.c:2383 __traceiter_sched_switch+0x98/0xd0 include/trace/events/sched.h:222 trace_sched_switch include/trace/events/sched.h:222 [inline] __schedule+0x22bb/0x4c30 kernel/sched/core.c:6704 preempt_schedule_irq+0xfb/0x1c0 kernel/sched/core.c:7029 irqentry_exit+0x5e/0x90 kernel/entry/common.c:354 asm_sysvec_reschedule_ipi+0x1a/0x20 arch/x86/include/asm/idtentry.h:707 RIP: 0010:seqcount_lockdep_reader_access+0x1e0/0x220 include/linux/seqlock.h:75 Code: f7 4d 85 ed 75 16 e8 6f 6d ba f7 eb 15 e8 68 6d ba f7 e8 b3 66 ea 01 4d 85 ed 74 ea e8 59 6d ba f7 fb 48 c7 04 24 0e 36 e0 45 <4b> c7 04 3c 00 00 00 00 66 43 c7 44 3c 09 00 00 43 c6 44 3c 0b 00 RSP: 0018:ffffc9000ca4f9a0 EFLAGS: 00000293 RAX: ffffffff89db6a67 RBX: 0000000000000000 RCX: ffff888033ee1e00 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffffc9000ca4fa50 R08: ffffffff89db6a3d R09: 1ffffffff285a31c R10: dffffc0000000000 R11: fffffbfff285a31d R12: dffffc0000000000 R13: 0000000000000200 R14: 0000000000000046 R15: 1ffff92001949f34 nf_conntrack_get_ht include/net/netfilter/nf_conntrack.h:345 [inline] gc_worker+0x316/0x1530 net/netfilter/nf_conntrack_core.c:1534 process_one_work kernel/workqueue.c:3229 [inline] process_scheduled_works+0xa63/0x1850 kernel/workqueue.c:3310 worker_thread+0x870/0xd30 kernel/workqueue.c:3391 kthread+0x2f0/0x390 kernel/kthread.c:389 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 ---------------- Code disassembly (best guess), 1 bytes skipped: 0: 4d 85 ed test %r13,%r13 3: 75 16 jne 0x1b 5: e8 6f 6d ba f7 call 0xf7ba6d79 a: eb 15 jmp 0x21 c: e8 68 6d ba f7 call 0xf7ba6d79 11: e8 b3 66 ea 01 call 0x1ea66c9 16: 4d 85 ed test %r13,%r13 19: 74 ea je 0x5 1b: e8 59 6d ba f7 call 0xf7ba6d79 20: fb sti 21: 48 c7 04 24 0e 36 e0 movq $0x45e0360e,(%rsp) 28: 45 * 29: 4b c7 04 3c 00 00 00 movq $0x0,(%r12,%r15,1) <-- trapping instruction 30: 00 31: 66 43 c7 44 3c 09 00 movw $0x0,0x9(%r12,%r15,1) 38: 00 39: 43 c6 44 3c 0b 00 movb $0x0,0xb(%r12,%r15,1)