From nobody Thu Apr 23 18:16:26 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4g1kn64W4Nz6bFvp for ; Thu, 23 Apr 2026 18:16:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4g1kn6356Sz3RD1 for ; Thu, 23 Apr 2026 18:16:26 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776968186; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tYSGCk++O6oFZp6kpOmHQpo6wS9yeGzfh40Rm+udbj0=; b=RBYNQqx93RXr1KLQtTuEkV0bKdXBmHHlru+wRXVNr/iYOV4cYbk/GIh0msyKqQcYzZhs5Q /3JfC+NJ9bQr2FkyTXe7MOYj53Dan5cEx89tFAWWyu7wRY9Y5G9dGXp0YEbkPgEDbr31AR GjN+/bfh80dbwK5q5M0NTlrEsQF53YzABI2wscyJBCti8rmQ+Pl5dOf+IMfWedgfLrM8Tj yw5jwb5E6GKDsltJO/E2Oa+k8fK6Lg4mSL2VtCHYaHIcy4joRYkPVHSOl1fIaFUVd11VhB sJUvKHhdhNBOR6JbzQRikEg1RY9Usf5TAxnX/tt+ZgSusoIVZF5WXYk6iC6WKw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1776968186; a=rsa-sha256; cv=none; b=OQ/5WIIRQ5QLb01VTYjYRw78WVKea1YEHuaEPUrjpIS26YQ73M0xNEpVfTAambBhTqYfpr Ss9/CqelDKFg4mlokmiVApWXi2uo++IxDL3TbzXOQ6MyDT3WmGY6+JCaDX4FUS0KGOtmHv Xk1nYFBFMXRE44lGjESzwarhxfaenxIceylSWlFUF2atRZT3ELmHePjIF0eHyAhPpy5M6o Be8Ue7DSMXaCIVRu8QGGUlFlgh6zVXNyghmq7cO9fN40obw+p4Avjdn4Jx73D4hgD6N0/9 VaBSFeM9j28q4klB7sDM9CwFE0Z+cgFdQBR/U5i9cXk3DZNsP2cQrniyxDlQxA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1776968186; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=tYSGCk++O6oFZp6kpOmHQpo6wS9yeGzfh40Rm+udbj0=; b=mDnuzVgdvAgGhtFGWEFlVMM7iZQ7QxqulVhOpI1XsREJca/9mAsXYLNSyo/v8OPSS4MjMp WA2Kx8Y6yK08ghdcqCg5CYTZItbQ9/39mVP76URlm5LqzTCCGsLHei7pYM58qac0BldevM LNXXqmoCLUrO7kyxTfwW8cgjiue0kzxVg232czXXZ5fzMRHtjz4N6kCqppx08tDH+q8VWt 5fpSFvQc1+uZUGn2XjIzTd2RiDVVZGyFFx6zX086eYY1gFljplCaZJ9L1XnX0Cgv0OS/Bc hRSSwXbLe4XtZu2tU9h3giSCgUDgtqIsoDfCBwH2ic5MbnuJB7VFI6rTZD8Pow== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4g1kn62hDbzC9s for ; Thu, 23 Apr 2026 18:16:26 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44efe by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 23 Apr 2026 18:16:26 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: John Baldwin Subject: git: 496453e9de3f - main - amd64/aarch64 pmap: Switch type of pmap_preinit_mapping.va to void * List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: jhb X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 496453e9de3f27f84b6c68d2377f5e525d132967 Auto-Submitted: auto-generated Date: Thu, 23 Apr 2026 18:16:26 +0000 Message-Id: <69ea61fa.44efe.38028290@gitrepo.freebsd.org> The branch main has been updated by jhb: URL: https://cgit.FreeBSD.org/src/commit/?id=496453e9de3f27f84b6c68d2377f5e525d132967 commit 496453e9de3f27f84b6c68d2377f5e525d132967 Author: John Baldwin AuthorDate: 2026-04-23 17:05:55 +0000 Commit: John Baldwin CommitDate: 2026-04-23 17:05:55 +0000 amd64/aarch64 pmap: Switch type of pmap_preinit_mapping.va to void * Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068 --- sys/amd64/amd64/pmap.c | 32 +++++++++++++++++--------------- sys/arm64/arm64/pmap.c | 24 +++++++++++++----------- 2 files changed, 30 insertions(+), 26 deletions(-) diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index b9ecc230495d..60a5b5a2da9a 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -530,7 +530,7 @@ struct kva_layout_s kva_layout_la57 = { #define PMAP_PREINIT_MAPPING_COUNT 8 static struct pmap_preinit_mapping { vm_paddr_t pa; - vm_offset_t va; + void *va; vm_size_t sz; int mode; } pmap_preinit_mapping[PMAP_PREINIT_MAPPING_COUNT]; @@ -2608,7 +2608,7 @@ pmap_init(void) pmap_initialized = 1; for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { ppim = pmap_preinit_mapping + i; - if (ppim->va == 0) + if (ppim->va == NULL) continue; /* Make the direct map consistent */ if (ppim->pa < dmaplimit && ppim->pa + ppim->sz <= dmaplimit) { @@ -2617,7 +2617,7 @@ pmap_init(void) } if (!bootverbose) continue; - printf("PPIM %u: PA=%#lx, VA=%#lx, size=%#lx, mode=%#x\n", i, + printf("PPIM %u: PA=%#lx, VA=%p, size=%#lx, mode=%#x\n", i, ppim->pa, ppim->va, ppim->sz, ppim->mode); } @@ -9407,13 +9407,13 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags) va = NULL; for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { ppim = pmap_preinit_mapping + i; - if (ppim->va == 0) { + if (ppim->va == NULL) { ppim->pa = pa; ppim->sz = size; ppim->mode = mode; - ppim->va = virtual_avail; + ppim->va = (void *)virtual_avail; virtual_avail += size; - va = (void *)ppim->va; + va = ppim->va; break; } } @@ -9495,15 +9495,17 @@ void pmap_unmapdev(void *p, vm_size_t size) { struct pmap_preinit_mapping *ppim; - vm_offset_t offset, va; + char *va; + vm_offset_t offset; int i; - va = (vm_offset_t)p; + va = p; /* If we gave a direct map region in pmap_mapdev, do nothing */ - if (va >= kva_layout.dmap_low && va < kva_layout.dmap_high) + if ((vm_offset_t)va >= kva_layout.dmap_low && + (vm_offset_t)va < kva_layout.dmap_high) return; - offset = va & PAGE_MASK; + offset = (vm_offset_t)va & PAGE_MASK; size = round_page(offset + size); va = trunc_page(va); for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) { @@ -9512,17 +9514,17 @@ pmap_unmapdev(void *p, vm_size_t size) if (pmap_initialized) return; ppim->pa = 0; - ppim->va = 0; + ppim->va = NULL; ppim->sz = 0; ppim->mode = 0; - if (va + size == virtual_avail) - virtual_avail = va; + if (va + size == (void *)virtual_avail) + virtual_avail = (vm_offset_t)va; return; } } if (pmap_initialized) { - pmap_qremove((void *)va, atop(size)); - kva_free((void *)va, size); + pmap_qremove(va, atop(size)); + kva_free(va, size); } } diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 0ce4435e481d..4e216ea01ab5 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -319,7 +319,7 @@ static int vm_initialized = 0; /* No need to use pre-init maps when set */ */ static struct pmap_preinit_mapping { vm_paddr_t pa; - vm_offset_t va; + void *va; vm_size_t size; } pmap_preinit_mapping[PMAP_PREINIT_MAPPING_COUNT]; @@ -8042,7 +8042,7 @@ pmap_mapbios(vm_paddr_t pa, vm_size_t size) /* Mark entries as allocated */ ppim = pmap_preinit_mapping + i; ppim->pa = pa; - ppim->va = va + offset; + ppim->va = (char *)va + offset; ppim->size = size; } @@ -8104,20 +8104,21 @@ void pmap_unmapbios(void *p, vm_size_t size) { struct pmap_preinit_mapping *ppim; - vm_offset_t offset, va, va_trunc; + char *va; + vm_offset_t offset, va_trunc; pd_entry_t *pde; pt_entry_t *l2; int error __diagused, i, lvl, l2_blocks, block; bool preinit_map; - va = (vm_offset_t)p; + va = p; if (VIRT_IN_DMAP(va)) { KASSERT(VIRT_IN_DMAP(va + size - 1), - ("%s: End address not in DMAP region: %lx", __func__, + ("%s: End address not in DMAP region: %p", __func__, va + size - 1)); /* Ensure the attributes are as expected for the DMAP region */ PMAP_LOCK(kernel_pmap); - error = pmap_change_props_locked(p, size, + error = pmap_change_props_locked(va, size, PROT_READ | PROT_WRITE, VM_MEMATTR_DEFAULT, false); PMAP_UNLOCK(kernel_pmap); KASSERT(error == 0, ("%s: Failed to reset DMAP attributes: %d", @@ -8138,12 +8139,13 @@ pmap_unmapbios(void *p, vm_size_t size) if (ppim->va == va) { KASSERT(ppim->size == size, ("pmap_unmapbios: size mismatch")); - ppim->va = 0; + ppim->va = NULL; ppim->pa = 0; ppim->size = 0; preinit_map = true; offset = block * L2_SIZE; - va_trunc = rounddown2(va, L2_SIZE) + offset; + va_trunc = rounddown2((vm_offset_t)va, L2_SIZE) + + offset; /* Remove L2_BLOCK */ pde = pmap_pde(kernel_pmap, va_trunc, &lvl); @@ -8165,14 +8167,14 @@ pmap_unmapbios(void *p, vm_size_t size) /* Unmap the pages reserved with kva_alloc. */ if (vm_initialized) { - offset = va & PAGE_MASK; + offset = (vm_offset_t)va & PAGE_MASK; size = round_page(offset + size); va = trunc_page(va); /* Unmap and invalidate the pages */ - pmap_kremove_device(va, size); + pmap_kremove_device((vm_offset_t)va, size); - kva_free((void *)va, size); + kva_free(va, size); } }