Netdev List
 help / color / mirror / Atom feed
* [syzbot] [net?] BUG: unable to handle kernel paging request in percpu_counter_add_batch (3)
@ 2026-11-13 22:57 syzbot
  0 siblings, 0 replies; only message in thread
From: syzbot @ 2026-11-13 22:57 UTC (permalink / raw)
  To: davem, dsahern, edumazet, horms, kuba, linux-kernel, netdev,
	pabeni, syzkaller-bugs

Hello,

syzbot found the following issue on:

HEAD commit:    2800868f6322 Merge tag 'sound-7.4-rc3' of git://git.kernel..
git tree:       upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=12acfe4e580000
kernel config:  https://syzkaller.appspot.com/x/.config?x=1cf189394a856f11
dashboard link: https://syzkaller.appspot.com/bug?extid=84e27adb95fd2a1fe9bb
compiler:       gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian) 2.44

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/d900f083ada3/non_bootable_disk-2800868f.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/7a4b1a29003d/vmlinux-2800868f.xz
kernel image: https://storage.googleapis.com/syzbot-assets/02da498b013d/bzImage-2800868f.xz

AI-generated root cause summary:
During network namespace destruction, IPVS flushes its virtual services and
destinations in __ip_vs_cleanup_batch() via ip_vs_flush() ->
__ip_vs_unlink_dest() -> __ip_vs_dst_cache_reset(). When resetting
dest->dest_dst, __ip_vs_dst_cache_reset() defers releasing the cached dst_entry
via call_rcu(&old->rcu_head, ip_vs_dest_dst_rcu_free). Because IPVS does not
invoke rcu_barrier() during netns teardown, earlier-registered pernet subsystem
exit handlers (such as ip6_route_net_exit) proceed to tear down the namespace's
dst_ops via dst_entries_destroy(), which destroys the percpu counter and sets
pcpuc_entries.counters to NULL. When the deferred ip_vs_dest_dst_rcu_free()
callback eventually runs in softirq context, dst_release() invokes
dst_entries_add() -> percpu_counter_add_batch(), which dereferences the NULL
fbc->counters pointer via this_cpu_read() (%gs:0), causing a fatal kernel page
fault at the GS segment base address.

full analysis:  https://syzkaller.appspot.com/x/ai_root_cause?x=84e27adb95fd2a1fe9bb

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+84e27adb95fd2a1fe9bb@syzkaller.appspotmail.com

BUG: unable to handle page fault for address: ffff8880d456e000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 1d131067 P4D 1d131067 PUD 0 
Oops: Oops: 0000 [#1] SMP KASAN NOPTI
CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Tainted: G             L      syzkaller #0 PREEMPT(full) 
Tainted: [L]=SOFTLOCKUP
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:percpu_counter_add_batch+0x4b/0x230 lib/percpu_counter.c:98
Code: 8d 45 58 48 89 c2 48 89 44 24 08 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 80 3c 02 00 0f 85 9f 01 00 00 4d 8b 65 58 4c 89 ff <65> 49 63 2c 24 4a 8d 54 35 00 48 89 6c 24 10 48 89 eb 48 89 d0 48
RSP: 0018:ffffc900006b0d68 EFLAGS: 00010246
RAX: dffffc0000000000 RBX: ffff88803e0cf400 RCX: 0000000000000101
RDX: 1ffff11007045bab RSI: ffffffff85702e00 RDI: 0000000000000020
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000003 R11: 0000000000000001 R12: 0000000000000000
R13: ffff88803822dd00 R14: ffffffffffffffff R15: 0000000000000020
FS:  0000000000000000(0000) GS:ffff8880d456e000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffff8880d456e000 CR3: 0000000025b53000 CR4: 0000000000352ef0
DR0: 0000000000000010 DR1: 00000000fffffffd DR2: 400000000001001d
DR3: fffffffffffffff6 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Call Trace:
 <IRQ>
 dst_entries_add include/net/dst_ops.h:59 [inline]
 dst_count_dec net/core/dst.c:163 [inline]
 dst_count_dec net/core/dst.c:160 [inline]
 dst_release net/core/dst.c:177 [inline]
 dst_release+0x2aa/0x330 net/core/dst.c:166
 ip_vs_dest_dst_rcu_free+0x32/0x50 net/netfilter/ipvs/ip_vs_ctl.c:1081
 rcu_do_batch kernel/rcu/tree.c:2650 [inline]
 rcu_core+0x5f0/0x1220 kernel/rcu/tree.c:2919
 handle_softirqs+0x216/0xa20 kernel/softirq.c:669
 __do_softirq kernel/softirq.c:703 [inline]
 invoke_softirq kernel/softirq.c:542 [inline]
 __irq_exit_rcu+0x178/0x220 kernel/softirq.c:786
 irq_exit_rcu+0x9/0x30 kernel/softirq.c:809
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1062 [inline]
 sysvec_apic_timer_interrupt+0xa3/0xc0 arch/x86/kernel/apic/apic.c:1062
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674
RIP: 0010:pv_native_safe_halt+0xf/0x20 arch/x86/kernel/paravirt.c:64
Code: 56 9f 02 c3 cc cc cc cc 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 0f 1e fa eb 07 0f 00 2d 33 4e 1b 00 fb f4 <e9> 4c 62 03 00 66 2e 0f 1f 84 00 00 00 00 00 66 90 90 90 90 90 90
RSP: 0018:ffffc90000187e00 EFLAGS: 00000206
RAX: 00000000009bb6ed RBX: ffff888020abcb00 RCX: ffffffff8bf07375
RDX: 0000000000000001 RSI: ffffffff8e62a27a RDI: ffffffff8c835280
RBP: ffffed1004157960 R08: 0000000000000001 R09: ffffed100d426825
R10: ffff88806a13412b R11: 0000000000000001 R12: 0000000000000000
R13: 0000000000000000 R14: 1ffff92000030fc4 R15: dffffc0000000000
 arch_safe_halt arch/x86/include/asm/paravirt.h:62 [inline]
 default_idle+0x9/0x10 arch/x86/kernel/process.c:768
 default_idle_call+0x6c/0xb0 kernel/sched/idle.c:122
 cpuidle_idle_call kernel/sched/idle.c:199 [inline]
 do_idle+0x3ae/0x5b0 kernel/sched/idle.c:355
 cpu_startup_entry+0x4f/0x60 kernel/sched/idle.c:458
 start_secondary+0x21d/0x2d0 arch/x86/kernel/smpboot.c:312
 common_startup_64+0x13e/0x158
 </TASK>
Modules linked in:
CR2: ffff8880d456e000
---[ end trace 0000000000000000 ]---
RIP: 0010:percpu_counter_add_batch+0x4b/0x230 lib/percpu_counter.c:98
Code: 8d 45 58 48 89 c2 48 89 44 24 08 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 80 3c 02 00 0f 85 9f 01 00 00 4d 8b 65 58 4c 89 ff <65> 49 63 2c 24 4a 8d 54 35 00 48 89 6c 24 10 48 89 eb 48 89 d0 48
RSP: 0018:ffffc900006b0d68 EFLAGS: 00010246
RAX: dffffc0000000000 RBX: ffff88803e0cf400 RCX: 0000000000000101
RDX: 1ffff11007045bab RSI: ffffffff85702e00 RDI: 0000000000000020
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000003 R11: 0000000000000001 R12: 0000000000000000
R13: ffff88803822dd00 R14: ffffffffffffffff R15: 0000000000000020
FS:  0000000000000000(0000) GS:ffff8880d456e000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffff8880d456e000 CR3: 0000000025b53000 CR4: 0000000000352ef0
DR0: 0000000000000010 DR1: 00000000fffffffd DR2: 400000000001001d
DR3: fffffffffffffff6 DR6: 00000000ffff0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
   0:	8d 45 58             	lea    0x58(%rbp),%eax
   3:	48 89 c2             	mov    %rax,%rdx
   6:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
   b:	48 b8 00 00 00 00 00 	movabs $0xdffffc0000000000,%rax
  12:	fc ff df
  15:	48 c1 ea 03          	shr    $0x3,%rdx
  19:	80 3c 02 00          	cmpb   $0x0,(%rdx,%rax,1)
  1d:	0f 85 9f 01 00 00    	jne    0x1c2
  23:	4d 8b 65 58          	mov    0x58(%r13),%r12
  27:	4c 89 ff             	mov    %r15,%rdi
* 2a:	65 49 63 2c 24       	movslq %gs:(%r12),%rbp <-- trapping instruction
  2f:	4a 8d 54 35 00       	lea    0x0(%rbp,%r14,1),%rdx
  34:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
  39:	48 89 eb             	mov    %rbp,%rbx
  3c:	48 89 d0             	mov    %rdx,%rax
  3f:	48                   	rex.W


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzkaller@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-11-13 22:57 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-13 22:57 [syzbot] [net?] BUG: unable to handle kernel paging request in percpu_counter_add_batch (3) syzbot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox