inconsistent lock state in x25_kill_by_neigh

Status: upstream: reported C repro on 2026/08/29 16:35
Reported-by: syzbot+628a7c9a2093bde0446b@syzkaller.appspotmail.com
First crash: 3d02h, last: 2d17h
Similar bugs (2)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 inconsistent lock state in x25_kill_by_neigh 4 syz, C 9 3h25m 3d18h 0/3 upstream: reported C repro on 2026/08/29 00:21
linux-6.1 inconsistent lock state in x25_kill_by_neigh 4 10 1h52m 3d18h 0/3 upstream: reported on 2026/08/29 00:46

Sample crash report:
================================
WARNING: inconsistent lock state
syzkaller #0 Not tainted
--------------------------------
inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage.
swapper/0/0 [HC0[0]:SC1[1]:HE1:SE0] takes:
ffff888025eb2130 (sk_lock-AF_X25){+.?.}-{0:0}, at: lock_sock include/net/sock.h:1780 [inline]
ffff888025eb2130 (sk_lock-AF_X25){+.?.}-{0:0}, at: x25_kill_by_neigh+0x10d/0x250 net/x25/af_x25.c:1782
{SOFTIRQ-ON-W} state was registered at:
  lock_acquire+0x19e/0x420 kernel/locking/lockdep.c:5754
  lock_sock_nested+0x48/0x100 net/core/sock.c:3543
  lock_sock include/net/sock.h:1780 [inline]
  x25_bind+0x20a/0x460 net/x25/af_x25.c:698
  __sys_bind+0x2f0/0x3f0 net/socket.c:1856
  __do_sys_bind net/socket.c:1867 [inline]
  __se_sys_bind net/socket.c:1865 [inline]
  __x64_sys_bind+0x7a/0x90 net/socket.c:1865
  do_syscall_x64 arch/x86/entry/common.c:46 [inline]
  do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:76
  entry_SYSCALL_64_after_hwframe+0x68/0xd2
irq event stamp: 433934
hardirqs last  enabled at (433934): [<ffffffff8152ccba>] __local_bh_enable_ip+0x13a/0x1c0 kernel/softirq.c:411
hardirqs last disabled at (433933): [<ffffffff8152cc5b>] __local_bh_enable_ip+0xdb/0x1c0 kernel/softirq.c:388
softirqs last  enabled at (433798): [<ffffffff8152d8f3>] __do_softirq kernel/softirq.c:612 [inline]
softirqs last  enabled at (433798): [<ffffffff8152d8f3>] invoke_softirq kernel/softirq.c:452 [inline]
softirqs last  enabled at (433798): [<ffffffff8152d8f3>] __irq_exit_rcu+0xd3/0x190 kernel/softirq.c:661
softirqs last disabled at (433817): [<ffffffff8152d8f3>] __do_softirq kernel/softirq.c:612 [inline]
softirqs last disabled at (433817): [<ffffffff8152d8f3>] invoke_softirq kernel/softirq.c:452 [inline]
softirqs last disabled at (433817): [<ffffffff8152d8f3>] __irq_exit_rcu+0xd3/0x190 kernel/softirq.c:661

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(sk_lock-AF_X25);
  <Interrupt>
    lock(sk_lock-AF_X25);

 *** DEADLOCK ***

1 lock held by swapper/0/0:
 #0: ffffffff8d131da0 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire include/linux/rcupdate.h:334 [inline]
 #0: ffffffff8d131da0 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock include/linux/rcupdate.h:786 [inline]
 #0: ffffffff8d131da0 (rcu_read_lock){....}-{1:2}, at: netif_receive_skb_core+0x34/0x230 net/core/dev.c:5688

stack backtrace:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
Call Trace:
 <IRQ>
 dump_stack_lvl+0x18c/0x250 lib/dump_stack.c:106
 valid_state+0x13b/0x1d0 kernel/locking/lockdep.c:4013
 mark_lock_irq+0xad/0x900 kernel/locking/lockdep.c:4216
 mark_lock+0x208/0x320 kernel/locking/lockdep.c:4678
 mark_usage kernel/locking/lockdep.c:-1 [inline]
 __lock_acquire+0xcfc/0x7d80 kernel/locking/lockdep.c:5091
 lock_acquire+0x19e/0x420 kernel/locking/lockdep.c:5754
 lock_sock_nested+0x48/0x100 net/core/sock.c:3543
 lock_sock include/net/sock.h:1780 [inline]
 x25_kill_by_neigh+0x10d/0x250 net/x25/af_x25.c:1782
 x25_lapb_receive_frame+0x1a7/0xef0 net/x25/x25_dev.c:138
 __netif_receive_skb_one_core net/core/dev.c:5664 [inline]
 netif_receive_skb_core+0x16a/0x230 net/core/dev.c:5689
 lapbeth_napi_poll+0x42/0x80 drivers/net/wan/lapbether.c:99
 __napi_poll+0xbb/0x460 net/core/dev.c:6668
 napi_poll net/core/dev.c:6735 [inline]
 net_rx_action+0x65f/0xcc0 net/core/dev.c:6871
 handle_softirqs+0x27d/0x820 kernel/softirq.c:578
 __do_softirq kernel/softirq.c:612 [inline]
 invoke_softirq kernel/softirq.c:452 [inline]
 __irq_exit_rcu+0xd3/0x190 kernel/softirq.c:661
 irq_exit_rcu+0x9/0x20 kernel/softirq.c:673
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1088 [inline]
 sysvec_apic_timer_interrupt+0xa4/0xc0 arch/x86/kernel/apic/apic.c:1088
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:687
RIP: 0010:pv_native_safe_halt+0xf/0x10 arch/x86/kernel/paravirt.c:148
Code: d9 19 02 c3 cc cc cc cc cc cc cc f3 0f 1e fa 0f 0b 66 2e 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 66 90 0f 00 2d a3 a5 38 00 fb f4 <c3> 66 0f 1f 00 55 41 57 41 56 41 54 53 50 8b 2f eb 2c 89 cb 80 f9
RSP: 0018:ffffffff8ce07d80 EFLAGS: 000002c2
RAX: 0168b3148895ce00 RBX: ffffffff81630d54 RCX: 0168b3148895ce00
RDX: 0000000000000001 RSI: ffffffff8acacbe0 RDI: ffffffff8b1d3360
RBP: ffffffff8ce07eb8 R08: ffff8880b8e36b6b R09: 1ffff110171c6d6d
R10: dffffc0000000000 R11: ffffed10171c6d6e R12: 1ffffffff19c0fbc
R13: dffffc0000000000 R14: 1ffffffff19d2688 R15: 0000000000000000
 arch_safe_halt arch/x86/include/asm/paravirt.h:108 [inline]
 default_idle+0x13/0x20 arch/x86/kernel/process.c:753
 default_idle_call+0x6c/0xa0 kernel/sched/idle.c:97
 cpuidle_idle_call kernel/sched/idle.c:178 [inline]
 do_idle+0x334/0x5c0 kernel/sched/idle.c:302
 cpu_startup_entry+0x43/0x60 kernel/sched/idle.c:401
 rest_init+0x2e2/0x300 init/main.c:705
 arch_call_rest_init+0xe/0x10 init/main.c:801
 start_kernel+0x461/0x4e0 init/main.c:1046
 x86_64_start_reservations+0x2a/0x30 arch/x86/kernel/head64.c:555
 x86_64_start_kernel+0x60/0x60 arch/x86/kernel/head64.c:536
 secondary_startup_64_no_verify+0x179/0x17b
 </TASK>
BUG: sleeping function called from invalid context at net/core/sock.c:3545
in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 0, name: swapper/0
preempt_count: 101, expected: 0
RCU nest depth: 1, expected: 0
INFO: lockdep is turned off.
Preemption disabled at:
[<ffffffff8a97e91d>] schedule_preempt_disabled+0x1d/0x20 kernel/sched/core.c:6835
CPU: 0 PID: 0 Comm: swapper/0 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
Call Trace:
 <IRQ>
 dump_stack_lvl+0x18c/0x250 lib/dump_stack.c:106
 __might_resched+0x48d/0x5f0 kernel/sched/core.c:10212
 lock_sock_nested+0x5d/0x100 net/core/sock.c:3545
 lock_sock include/net/sock.h:1780 [inline]
 x25_kill_by_neigh+0x10d/0x250 net/x25/af_x25.c:1782
 x25_lapb_receive_frame+0x1a7/0xef0 net/x25/x25_dev.c:138
 __netif_receive_skb_one_core net/core/dev.c:5664 [inline]
 netif_receive_skb_core+0x16a/0x230 net/core/dev.c:5689
 lapbeth_napi_poll+0x42/0x80 drivers/net/wan/lapbether.c:99
 __napi_poll+0xbb/0x460 net/core/dev.c:6668
 napi_poll net/core/dev.c:6735 [inline]
 net_rx_action+0x65f/0xcc0 net/core/dev.c:6871
 handle_softirqs+0x27d/0x820 kernel/softirq.c:578
 __do_softirq kernel/softirq.c:612 [inline]
 invoke_softirq kernel/softirq.c:452 [inline]
 __irq_exit_rcu+0xd3/0x190 kernel/softirq.c:661
 irq_exit_rcu+0x9/0x20 kernel/softirq.c:673
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1088 [inline]
 sysvec_apic_timer_interrupt+0xa4/0xc0 arch/x86/kernel/apic/apic.c:1088
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:687
RIP: 0010:pv_native_safe_halt+0xf/0x10 arch/x86/kernel/paravirt.c:148
Code: d9 19 02 c3 cc cc cc cc cc cc cc f3 0f 1e fa 0f 0b 66 2e 0f 1f 84 00 00 00 00 00 f3 0f 1e fa 66 90 0f 00 2d a3 a5 38 00 fb f4 <c3> 66 0f 1f 00 55 41 57 41 56 41 54 53 50 8b 2f eb 2c 89 cb 80 f9
RSP: 0018:ffffffff8ce07d80 EFLAGS: 000002c2
RAX: 0168b3148895ce00 RBX: ffffffff81630d54 RCX: 0168b3148895ce00
RDX: 0000000000000001 RSI: ffffffff8acacbe0 RDI: ffffffff8b1d3360
RBP: ffffffff8ce07eb8 R08: ffff8880b8e36b6b R09: 1ffff110171c6d6d
R10: dffffc0000000000 R11: ffffed10171c6d6e R12: 1ffffffff19c0fbc
R13: dffffc0000000000 R14: 1ffffffff19d2688 R15: 0000000000000000
 arch_safe_halt arch/x86/include/asm/paravirt.h:108 [inline]
 default_idle+0x13/0x20 arch/x86/kernel/process.c:753
 default_idle_call+0x6c/0xa0 kernel/sched/idle.c:97
 cpuidle_idle_call kernel/sched/idle.c:178 [inline]
 do_idle+0x334/0x5c0 kernel/sched/idle.c:302
 cpu_startup_entry+0x43/0x60 kernel/sched/idle.c:401
 rest_init+0x2e2/0x300 init/main.c:705
 arch_call_rest_init+0xe/0x10 init/main.c:801
 start_kernel+0x461/0x4e0 init/main.c:1046
 x86_64_start_reservations+0x2a/0x30 arch/x86/kernel/head64.c:555
 x86_64_start_kernel+0x60/0x60 arch/x86/kernel/head64.c:536
 secondary_startup_64_no_verify+0x179/0x17b
 </TASK>
----------------
Code disassembly (best guess):
   0:	d9 19                	fstps  (%rcx)
   2:	02 c3                	add    %bl,%al
   4:	cc                   	int3
   5:	cc                   	int3
   6:	cc                   	int3
   7:	cc                   	int3
   8:	cc                   	int3
   9:	cc                   	int3
   a:	cc                   	int3
   b:	f3 0f 1e fa          	endbr64
   f:	0f 0b                	ud2
  11:	66 2e 0f 1f 84 00 00 	cs nopw 0x0(%rax,%rax,1)
  18:	00 00 00
  1b:	f3 0f 1e fa          	endbr64
  1f:	66 90                	xchg   %ax,%ax
  21:	0f 00 2d a3 a5 38 00 	verw   0x38a5a3(%rip)        # 0x38a5cb
  28:	fb                   	sti
  29:	f4                   	hlt
* 2a:	c3                   	ret <-- trapping instruction
  2b:	66 0f 1f 00          	nopw   (%rax)
  2f:	55                   	push   %rbp
  30:	41 57                	push   %r15
  32:	41 56                	push   %r14
  34:	41 54                	push   %r12
  36:	53                   	push   %rbx
  37:	50                   	push   %rax
  38:	8b 2f                	mov    (%rdi),%ebp
  3a:	eb 2c                	jmp    0x68
  3c:	89 cb                	mov    %ecx,%ebx
  3e:	80                   	.byte 0x80
  3f:	f9                   	stc

Crashes (6):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/08/30 01:01 linux-6.6.y a4a971135a2f 2f52988a .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan inconsistent lock state in x25_kill_by_neigh
2026/08/29 23:31 linux-6.6.y a4a971135a2f 2f52988a .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan inconsistent lock state in x25_kill_by_neigh
2026/08/29 22:10 linux-6.6.y a4a971135a2f 2f52988a .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan inconsistent lock state in x25_kill_by_neigh
2026/08/29 19:31 linux-6.6.y a4a971135a2f 2f52988a .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan inconsistent lock state in x25_kill_by_neigh
2026/08/29 18:01 linux-6.6.y a4a971135a2f 2f52988a .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan inconsistent lock state in x25_kill_by_neigh
2026/08/29 16:34 linux-6.6.y a4a971135a2f 2f52988a .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan inconsistent lock state in x25_kill_by_neigh
* Struck through repros no longer work on HEAD.