git: 7b8f3db50cc9 - main - libkvm: support little-endian powerpc64 minidumps

From: Minsoo Choo <mchoo_at_FreeBSD.org>
Date: Mon, 28 Sep 2026 15:39:55 UTC
The branch main has been updated by mchoo:

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

commit 7b8f3db50cc992a3676e7e5ac207024e073884d4
Author:     Minsoo Choo <mchoo@FreeBSD.org>
AuthorDate: 2026-09-15 03:04:16 +0000
Commit:     Minsoo Choo <mchoo@FreeBSD.org>
CommitDate: 2026-09-28 15:39:46 +0000

    libkvm: support little-endian powerpc64 minidumps
    
    Reviewed by:    jhibbits
    Approved by:    olce (mentor)
    MFC after:      2 weeks
    Sponsored by:   FreeBSD Foundation
    Differential Revision:  https://reviews.freebsd.org/D59719
---
 lib/libkvm/kvm_minidump_powerpc64.c     | 24 ++++++++++++------------
 lib/libkvm/kvm_minidump_powerpc64_hpt.c |  4 ++--
 2 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/lib/libkvm/kvm_minidump_powerpc64.c b/lib/libkvm/kvm_minidump_powerpc64.c
index caf504cff077..f39a6ed9393b 100644
--- a/lib/libkvm/kvm_minidump_powerpc64.c
+++ b/lib/libkvm/kvm_minidump_powerpc64.c
@@ -88,25 +88,25 @@ _powerpc64_minidump_initvtop(kvm_t *kd)
 		goto failed;
 	}
 	/* Check version */
-	hdr->version = be32toh(hdr->version);
+	hdr->version = _kvm32toh(kd, hdr->version);
 	if (hdr->version != MINIDUMP_VERSION && hdr->version != 1) {
 		_kvm_err(kd, kd->program, "wrong minidump version. "
 		    "Expected %d got %d", MINIDUMP_VERSION, hdr->version);
 		goto failed;
 	}
 	/* Convert header fields to host endian */
-	hdr->msgbufsize		= be32toh(hdr->msgbufsize);
-	hdr->bitmapsize		= be32toh(hdr->bitmapsize);
-	hdr->pmapsize		= be32toh(hdr->pmapsize);
-	hdr->kernbase		= be64toh(hdr->kernbase);
-	hdr->kernend		= be64toh(hdr->kernend);
-	hdr->dmapbase		= be64toh(hdr->dmapbase);
-	hdr->dmapend		= be64toh(hdr->dmapend);
-	hdr->hw_direct_map	= be32toh(hdr->hw_direct_map);
-	hdr->startkernel	= be64toh(hdr->startkernel);
-	hdr->endkernel		= be64toh(hdr->endkernel);
+	hdr->msgbufsize		= _kvm32toh(kd, hdr->msgbufsize);
+	hdr->bitmapsize		= _kvm32toh(kd, hdr->bitmapsize);
+	hdr->pmapsize		= _kvm32toh(kd, hdr->pmapsize);
+	hdr->kernbase		= _kvm64toh(kd, hdr->kernbase);
+	hdr->kernend		= _kvm64toh(kd, hdr->kernend);
+	hdr->dmapbase		= _kvm64toh(kd, hdr->dmapbase);
+	hdr->dmapend		= _kvm64toh(kd, hdr->dmapend);
+	hdr->hw_direct_map	= _kvm32toh(kd, hdr->hw_direct_map);
+	hdr->startkernel	= _kvm64toh(kd, hdr->startkernel);
+	hdr->endkernel		= _kvm64toh(kd, hdr->endkernel);
 	hdr->dumpavailsize	= hdr->version == MINIDUMP_VERSION ?
-	    be32toh(hdr->dumpavailsize) : 0;
+	    _kvm32toh(kd, hdr->dumpavailsize) : 0;
 
 	vmst->kimg_start = PPC64_KERNBASE;
 	vmst->kimg_end = PPC64_KERNBASE + hdr->endkernel - hdr->startkernel;
diff --git a/lib/libkvm/kvm_minidump_powerpc64_hpt.c b/lib/libkvm/kvm_minidump_powerpc64_hpt.c
index 1db3d373e169..9846f5594400 100644
--- a/lib/libkvm/kvm_minidump_powerpc64_hpt.c
+++ b/lib/libkvm/kvm_minidump_powerpc64_hpt.c
@@ -311,8 +311,8 @@ pte_get(kvm_t *kd, u_long ptex)
 	ppc64_pt_entry_t pte, *p;
 
 	p = _kvm_pmap_get(kd, ptex, sizeof(pte));
-	pte.pte_hi = be64toh(p->pte_hi);
-	pte.pte_lo = be64toh(p->pte_lo);
+	pte.pte_hi = _kvm64toh(kd, p->pte_hi);
+	pte.pte_lo = _kvm64toh(kd, p->pte_lo);
 	return (pte);
 }