git: b13bba245653 - stable/14 - sys/compat/freebsd32: ki_pd is missing from struct kinfo_proc32

From: Dag-Erling Smørgrav <des_at_FreeBSD.org>
Date: Sun, 12 Apr 2026 05:57:14 UTC
The branch stable/14 has been updated by des:

URL: https://cgit.FreeBSD.org/src/commit/?id=b13bba245653e81e35cdcfca7acd05f0065d2b6c

commit b13bba245653e81e35cdcfca7acd05f0065d2b6c
Author:     Konstantin Belousov <kib@FreeBSD.org>
AuthorDate: 2026-02-05 20:02:27 +0000
Commit:     Dag-Erling Smørgrav <des@FreeBSD.org>
CommitDate: 2026-04-12 05:56:46 +0000

    sys/compat/freebsd32: ki_pd is missing from struct kinfo_proc32
    
    This is missed by the sizeof(struct kinfo_proc32) assert due to another
    bug: namely, the use of uint64_t type that has different alignment on
    i386 than on amd64 host.
    
    Fixes:  85078b8573332c2c83a79adea8a61b519fb3b6af
    Reviewed by:    brooks
    Sponsored by:   The FreeBSD Foundation
    MFC after:      1 week
    Differential revision:  https://reviews.freebsd.org/D55135
    
    (cherry picked from commit 154778e3585166f613fd3d2978a0cab2262d1611)
---
 sys/compat/freebsd32/freebsd32.h | 1 +
 sys/kern/kern_proc.c             | 1 +
 2 files changed, 2 insertions(+)

diff --git a/sys/compat/freebsd32/freebsd32.h b/sys/compat/freebsd32/freebsd32.h
index 7a4cfc1fbf0b..9629a3621481 100644
--- a/sys/compat/freebsd32/freebsd32.h
+++ b/sys/compat/freebsd32/freebsd32.h
@@ -410,6 +410,7 @@ struct kinfo_proc32 {
 	uint32_t ki_kstack;
 	uint32_t ki_udata;
 	uint32_t ki_tdaddr;
+	uint32_t ki_pd;
 	uint32_t ki_spareptrs[KI_NSPARE_PTR];	/* spare room for growth */
 	int	ki_sparelongs[KI_NSPARE_LONG];
 	int	ki_sflag;
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index c4d5356bb292..73e120f6a421 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -1506,6 +1506,7 @@ freebsd32_kinfo_proc_out(const struct kinfo_proc *ki, struct kinfo_proc32 *ki32)
 	PTRTRIM_CP(*ki, *ki32, ki_kstack);
 	PTRTRIM_CP(*ki, *ki32, ki_udata);
 	PTRTRIM_CP(*ki, *ki32, ki_tdaddr);
+	PTRTRIM_CP(*ki, *ki32, ki_pd);
 	CP(*ki, *ki32, ki_sflag);
 	CP(*ki, *ki32, ki_tdflags);
 }