git: fe3e92e6868d - main - PHYS_TO_DMAP: Return a void * instead of a vm_offset_t
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 23 Apr 2026 18:16:24 UTC
The branch main has been updated by jhb:
URL: https://cgit.FreeBSD.org/src/commit/?id=fe3e92e6868dce2ed94c98428b8df1f27ed3ef63
commit fe3e92e6868dce2ed94c98428b8df1f27ed3ef63
Author: John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2026-04-23 17:05:54 +0000
Commit: John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-04-23 17:05:54 +0000
PHYS_TO_DMAP: Return a void * instead of a vm_offset_t
Add a new PHYS_TO_DMAP_ADDR that still returns an address for use in
places that only need an address and not a pointer.
Effort: CHERI upstreaming
Reviewed by: kib
Sponsored by: AFRL, DARPA
Pull Request: https://github.com/freebsd/freebsd-src/pull/2068
---
sys/amd64/acpica/acpi_wakeup.c | 3 +-
sys/amd64/amd64/efirt_machdep.c | 12 +-
sys/amd64/amd64/kexec_support.c | 8 +-
sys/amd64/amd64/machdep.c | 2 +-
sys/amd64/amd64/mem.c | 6 +-
sys/amd64/amd64/minidump_machdep.c | 14 +-
sys/amd64/amd64/mp_machdep.c | 14 +-
sys/amd64/amd64/pmap.c | 171 +++++++++++----------
sys/amd64/include/sf_buf.h | 2 +-
sys/amd64/include/vmparam.h | 3 +-
sys/amd64/vmm/amd/amdvi_hw.c | 7 +-
sys/amd64/vmm/amd/ivrs_drv.c | 2 +-
sys/amd64/vmm/intel/ept.c | 3 +-
sys/amd64/vmm/intel/vtd.c | 8 +-
sys/arm/include/vmparam.h | 3 +-
sys/arm64/arm64/efirt_machdep.c | 12 +-
sys/arm64/arm64/gicv3_its.c | 12 +-
sys/arm64/arm64/kexec_support.c | 2 +-
sys/arm64/arm64/machdep.c | 11 +-
sys/arm64/arm64/mem.c | 3 +-
sys/arm64/arm64/minidump_machdep.c | 2 +-
sys/arm64/arm64/pmap.c | 123 ++++++++-------
sys/arm64/include/sf_buf.h | 2 +-
sys/arm64/include/vmparam.h | 5 +-
sys/arm64/iommu/iommu_pmap.c | 22 +--
sys/arm64/vmm/vmm_mmu.c | 20 +--
sys/compat/linuxkpi/common/include/linux/highmem.h | 2 +-
sys/compat/linuxkpi/common/include/linux/io.h | 8 +-
.../linuxkpi/common/include/linux/scatterlist.h | 2 +-
sys/compat/linuxkpi/common/src/linux_page.c | 3 +-
sys/contrib/ncsw/user/env/xx.c | 2 +-
sys/crypto/ccp/ccp_hardware.c | 2 +-
sys/dev/efidev/efirt.c | 4 +-
sys/dev/hwt/hwt_vm.c | 4 +-
sys/dev/iscsi/icl_soft.c | 10 +-
sys/dev/vmm/vmm_mem.c | 2 +-
sys/dev/vnic/nicvf_queues.c | 3 +-
sys/fs/nfs/nfs_commonsubs.c | 9 +-
sys/fs/nfs/nfsm_subs.h | 3 +-
sys/fs/nfsclient/nfs_clcomsubs.c | 12 +-
sys/fs/nfsclient/nfs_clrpcops.c | 4 +-
sys/fs/nfsserver/nfs_nfsdport.c | 4 +-
sys/fs/nfsserver/nfs_nfsdserv.c | 7 +-
sys/fs/nfsserver/nfs_nfsdsubs.c | 2 +-
sys/i386/include/vmparam.h | 3 +-
sys/kern/kern_mbuf.c | 4 +-
sys/kern/subr_memdesc.c | 4 +-
sys/kern/uipc_ktls.c | 4 +-
sys/kern/uipc_mbuf.c | 2 +-
sys/opencrypto/criov.c | 4 +-
sys/opencrypto/ktls_ocf.c | 3 +-
sys/powerpc/aim/mmu_oea64.c | 29 ++--
sys/powerpc/aim/mmu_radix.c | 101 ++++++------
sys/powerpc/aim/moea64_native.c | 4 +-
sys/powerpc/aim/slb.c | 2 +-
sys/powerpc/booke/pmap.c | 2 +-
sys/powerpc/booke/pmap_64.c | 46 +++---
sys/powerpc/include/vmparam.h | 3 +-
sys/powerpc/ofw/ofw_initrd.c | 2 +-
sys/powerpc/ofw/ofw_machdep.c | 7 +-
sys/powerpc/powerpc/bus_machdep.c | 2 +-
sys/powerpc/powerpc/machdep.c | 2 +-
sys/powerpc/powerpc/mem.c | 3 +-
sys/powerpc/powerpc/uma_machdep.c | 2 +-
sys/powerpc/ps3/platform_ps3.c | 3 +-
sys/riscv/include/sf_buf.h | 2 +-
sys/riscv/include/vmparam.h | 3 +-
sys/riscv/riscv/mem.c | 3 +-
sys/riscv/riscv/minidump_machdep.c | 2 +-
sys/riscv/riscv/pmap.c | 72 ++++-----
sys/sys/efi.h | 2 +-
sys/sys/sf_buf.h | 2 +-
sys/vm/uma_core.c | 2 +-
73 files changed, 426 insertions(+), 449 deletions(-)
diff --git a/sys/amd64/acpica/acpi_wakeup.c b/sys/amd64/acpica/acpi_wakeup.c
index 1200d20f14c2..ace559236de5 100644
--- a/sys/amd64/acpica/acpi_wakeup.c
+++ b/sys/amd64/acpica/acpi_wakeup.c
@@ -344,8 +344,7 @@ acpi_alloc_wakeup_handler(void **wakeaddr,
for (i = 0; i < ACPI_WAKEPT_PAGES - (la57 ? 0 : 1); i++) {
wakept_m[i] = pmap_page_alloc_below_4g(true);
- wakept_pages[i] = (void *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(
- wakept_m[i]));
+ wakept_pages[i] = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(wakept_m[i]));
}
if (EVENTHANDLER_REGISTER(power_resume, acpi_stop_beep, NULL,
EVENTHANDLER_PRI_LAST) == NULL) {
diff --git a/sys/amd64/amd64/efirt_machdep.c b/sys/amd64/amd64/efirt_machdep.c
index 203b2b264587..17088f69887d 100644
--- a/sys/amd64/amd64/efirt_machdep.c
+++ b/sys/amd64/amd64/efirt_machdep.c
@@ -95,7 +95,7 @@ efi_destroy_1t1_map(void)
* Map a physical address from EFI runtime space into KVA space. Returns 0 to
* indicate a failed mapping so that the caller may handle error.
*/
-vm_offset_t
+void *
efi_phys_to_kva(vm_paddr_t paddr)
{
@@ -135,7 +135,7 @@ efi_1t1_pte(vm_offset_t va)
} else {
mphys = *pml5e & PG_FRAME;
}
- pml4e = (pml4_entry_t *)PHYS_TO_DMAP(mphys);
+ pml4e = PHYS_TO_DMAP(mphys);
pml4e = &pml4e[pml4_idx];
} else {
pml4e = &efi_pml4[pml4_idx];
@@ -149,7 +149,7 @@ efi_1t1_pte(vm_offset_t va)
mphys = *pml4e & PG_FRAME;
}
- pdpe = (pdp_entry_t *)PHYS_TO_DMAP(mphys);
+ pdpe = PHYS_TO_DMAP(mphys);
pdp_idx = pmap_pdpe_index(va);
pdpe += pdp_idx;
if (*pdpe == 0) {
@@ -160,7 +160,7 @@ efi_1t1_pte(vm_offset_t va)
mphys = *pdpe & PG_FRAME;
}
- pde = (pd_entry_t *)PHYS_TO_DMAP(mphys);
+ pde = PHYS_TO_DMAP(mphys);
pd_idx = pmap_pde_index(va);
pde += pd_idx;
if (*pde == 0) {
@@ -171,7 +171,7 @@ efi_1t1_pte(vm_offset_t va)
mphys = *pde & PG_FRAME;
}
- pte = (pt_entry_t *)PHYS_TO_DMAP(mphys);
+ pte = PHYS_TO_DMAP(mphys);
pte += pmap_pte_index(va);
KASSERT(*pte == 0, ("va %#jx *pt %#jx", va, *pte));
@@ -197,7 +197,7 @@ efi_create_1t1_map(struct efi_md *map, int ndesc, int descsz)
VM_OBJECT_WLOCK(obj_1t1_pt);
efi_pmltop_page = efi_1t1_page();
VM_OBJECT_WUNLOCK(obj_1t1_pt);
- pml = (void *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(efi_pmltop_page));
+ pml = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(efi_pmltop_page));
if (la57) {
efi_pml5 = pml;
pmap_pinit_pml5(efi_pmltop_page);
diff --git a/sys/amd64/amd64/kexec_support.c b/sys/amd64/amd64/kexec_support.c
index 8189a48e9ae9..e299e9d3661c 100644
--- a/sys/amd64/amd64/kexec_support.c
+++ b/sys/amd64/amd64/kexec_support.c
@@ -88,16 +88,14 @@ kexec_generate_page_tables(pml4_entry_t *root, vm_offset_t start,
mpa = VM_PAGE_TO_PHYS(m);
root[i] = mpa | PG_RW | PG_V;
}
- pdp_entry_t *pdp =
- (pdp_entry_t *)(PHYS_TO_DMAP(root[i] & PG_FRAME));
+ pdp_entry_t *pdp = PHYS_TO_DMAP(root[i] & PG_FRAME);
for (; j < NPDPEPG && pg < start + size; j++, k = 0, l = 0) {
if (pdp[j] == 0) {
m = vm_radix_iter_next(pages);
mpa = VM_PAGE_TO_PHYS(m);
pdp[j] = mpa | PG_RW | PG_V;
}
- pd_entry_t *pde =
- (pd_entry_t *)(PHYS_TO_DMAP(pdp[j] & PG_FRAME));
+ pd_entry_t *pde = PHYS_TO_DMAP(pdp[j] & PG_FRAME);
for (; k < NPDEPG && pg < start + size; k++, l = 0) {
if (pde[k] == 0) {
if (!do_pte) {
@@ -118,7 +116,7 @@ kexec_generate_page_tables(pml4_entry_t *root, vm_offset_t start,
for (; l < NPTEPG && pg < start + size;
l++, pg += PAGE_SIZE) {
pt_entry_t *pte =
- (pt_entry_t *)PHYS_TO_DMAP(pde[pmap_pde_index(pg)] & PG_FRAME);
+ PHYS_TO_DMAP(pde[pmap_pde_index(pg)] & PG_FRAME);
pte[pmap_pte_index(pg)] =
pmap_kextract(pg) | PG_RW | PG_V;
}
diff --git a/sys/amd64/amd64/machdep.c b/sys/amd64/amd64/machdep.c
index 21217ebdb9df..e338db372df3 100644
--- a/sys/amd64/amd64/machdep.c
+++ b/sys/amd64/amd64/machdep.c
@@ -1132,7 +1132,7 @@ do_next:
phys_avail[pa_indx] -= round_page(msgbufsize);
/* Map the message buffer. */
- msgbufp = (struct msgbuf *)PHYS_TO_DMAP(phys_avail[pa_indx]);
+ msgbufp = PHYS_TO_DMAP(phys_avail[pa_indx]);
TSEXIT();
}
diff --git a/sys/amd64/amd64/mem.c b/sys/amd64/amd64/mem.c
index 851f2df0e6e1..ab1e6cde6cd5 100644
--- a/sys/amd64/amd64/mem.c
+++ b/sys/amd64/amd64/mem.c
@@ -77,10 +77,10 @@ int
memrw(struct cdev *dev, struct uio *uio, int flags)
{
struct iovec *iov;
- void *p;
+ void *p, *vd;
ssize_t orig_resid;
vm_prot_t prot;
- u_long v, vd;
+ u_long v;
u_int c;
int error;
@@ -145,7 +145,7 @@ memrw(struct cdev *dev, struct uio *uio, int flags)
case CDEV_MINOR_MEM:
if (v < dmaplimit) {
vd = PHYS_TO_DMAP(v);
- error = uiomove((void *)vd, c, uio);
+ error = uiomove(vd, c, uio);
break;
}
if (v > cpu_getmaxphyaddr()) {
diff --git a/sys/amd64/amd64/minidump_machdep.c b/sys/amd64/amd64/minidump_machdep.c
index 43bf81a991bf..41f713faf149 100644
--- a/sys/amd64/amd64/minidump_machdep.c
+++ b/sys/amd64/amd64/minidump_machdep.c
@@ -193,8 +193,8 @@ cpu_minidumpsys(struct dumperinfo *di, const struct minidumpstate *state)
*/
pmapsize += PAGE_SIZE;
ii = pmap_pml4e_index(va);
- pml4 = (uint64_t *)PHYS_TO_DMAP(KPML4phys) + ii;
- pdp = (uint64_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME);
+ pml4 = PHYS_TO_DMAP(KPML4phys);
+ pdp = PHYS_TO_DMAP(pml4[ii] & PG_FRAME);
pdpe = atomic_load_64(&pdp[pmap_pdpe_index(va)]);
if ((pdpe & PG_V) == 0) {
va += NBPDP;
@@ -216,7 +216,7 @@ cpu_minidumpsys(struct dumperinfo *di, const struct minidumpstate *state)
continue;
}
- pd = (uint64_t *)PHYS_TO_DMAP(pdpe & PG_FRAME);
+ pd = PHYS_TO_DMAP(pdpe & PG_FRAME);
for (n = 0; n < NPDEPG; n++, va += NBPDR) {
pde = atomic_load_64(&pd[pmap_pde_index(va)]);
@@ -240,7 +240,7 @@ cpu_minidumpsys(struct dumperinfo *di, const struct minidumpstate *state)
if (vm_phys_is_dumpable(pa))
vm_page_dump_add(state->dump_bitset, pa);
/* and for each valid page in this 2MB block */
- pt = (uint64_t *)PHYS_TO_DMAP(pde & PG_FRAME);
+ pt = PHYS_TO_DMAP(pde & PG_FRAME);
for (k = 0; k < NPTEPG; k++) {
pte = atomic_load_64(&pt[k]);
if ((pte & PG_V) == 0)
@@ -325,8 +325,8 @@ cpu_minidumpsys(struct dumperinfo *di, const struct minidumpstate *state)
bzero(fakepd, sizeof(fakepd));
for (va = kva_layout.km_low; va < kva_end; va += NBPDP) {
ii = pmap_pml4e_index(va);
- pml4 = (uint64_t *)PHYS_TO_DMAP(KPML4phys) + ii;
- pdp = (uint64_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME);
+ pml4 = PHYS_TO_DMAP(KPML4phys);
+ pdp = PHYS_TO_DMAP(pml4[ii] & PG_FRAME);
pdpe = atomic_load_64(&pdp[pmap_pdpe_index(va)]);
/* We always write a page, even if it is zero */
@@ -360,7 +360,7 @@ cpu_minidumpsys(struct dumperinfo *di, const struct minidumpstate *state)
pa = pdpe & PG_FRAME;
if (PHYS_IN_DMAP(pa) && vm_phys_is_dumpable(pa)) {
- pd = (uint64_t *)PHYS_TO_DMAP(pa);
+ pd = PHYS_TO_DMAP(pa);
error = blk_write(di, (char *)pd, 0, PAGE_SIZE);
} else {
/* Malformed pa, write the zeroed fakepd. */
diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c
index eef3c5573e15..172b0b9e544e 100644
--- a/sys/amd64/amd64/mp_machdep.c
+++ b/sys/amd64/amd64/mp_machdep.c
@@ -355,29 +355,29 @@ start_all_aps(void)
/* Create a transient 1:1 mapping of low 4G */
if (la57) {
m_pml4 = pmap_page_alloc_below_4g(true);
- v_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pml4));
+ v_pml4 = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pml4));
} else {
v_pml4 = &kernel_pmap->pm_pmltop[0];
}
m_pdp = pmap_page_alloc_below_4g(true);
- v_pdp = (pdp_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pdp));
+ v_pdp = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pdp));
m_pd[0] = pmap_page_alloc_below_4g(false);
- v_pd = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pd[0]));
+ v_pd = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pd[0]));
for (i = 0; i < NPDEPG; i++)
v_pd[i] = (i << PDRSHIFT) | X86_PG_V | X86_PG_RW | X86_PG_A |
X86_PG_M | PG_PS;
m_pd[1] = pmap_page_alloc_below_4g(false);
- v_pd = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pd[1]));
+ v_pd = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pd[1]));
for (i = 0; i < NPDEPG; i++)
v_pd[i] = (NBPDP + (i << PDRSHIFT)) | X86_PG_V | X86_PG_RW |
X86_PG_A | X86_PG_M | PG_PS;
m_pd[2] = pmap_page_alloc_below_4g(false);
- v_pd = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pd[2]));
+ v_pd = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pd[2]));
for (i = 0; i < NPDEPG; i++)
v_pd[i] = (2UL * NBPDP + (i << PDRSHIFT)) | X86_PG_V |
X86_PG_RW | X86_PG_A | X86_PG_M | PG_PS;
m_pd[3] = pmap_page_alloc_below_4g(false);
- v_pd = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pd[3]));
+ v_pd = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m_pd[3]));
for (i = 0; i < NPDEPG; i++)
v_pd[i] = (3UL * NBPDP + (i << PDRSHIFT)) | X86_PG_V |
X86_PG_RW | X86_PG_A | X86_PG_M | PG_PS;
@@ -399,7 +399,7 @@ start_all_aps(void)
pmap_invalidate_all(kernel_pmap);
/* copy the AP 1st level boot code */
- bcopy(mptramp_start, (void *)PHYS_TO_DMAP(boot_address), bootMP_size);
+ bcopy(mptramp_start, PHYS_TO_DMAP(boot_address), bootMP_size);
if (bootverbose)
printf("AP boot address %#lx\n", boot_address);
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index e5f21d326cfc..b9ecc230495d 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -1340,7 +1340,7 @@ static pv_entry_t pmap_pvh_remove(struct md_page *pvh, pmap_t pmap,
vm_offset_t va);
static void pmap_abort_ptp(pmap_t pmap, vm_offset_t va, vm_page_t mpte);
-static int pmap_change_props_locked(vm_offset_t va, vm_size_t size,
+static int pmap_change_props_locked(void *addr, vm_size_t size,
vm_prot_t prot, int mode, int flags);
static bool pmap_demote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va);
static bool pmap_demote_pde_locked(pmap_t pmap, pd_entry_t *pde,
@@ -1465,7 +1465,7 @@ pmap_pml5e_to_pml4e(pml5_entry_t *pml5e, vm_offset_t va)
pml4_entry_t *pml4e;
/* XXX MPASS(pmap_is_la57(pmap); */
- pml4e = (pml4_entry_t *)PHYS_TO_DMAP(*pml5e & PG_FRAME);
+ pml4e = PHYS_TO_DMAP(*pml5e & PG_FRAME);
return (&pml4e[pmap_pml4e_index(va)]);
}
@@ -1482,7 +1482,7 @@ pmap_pml4e(pmap_t pmap, vm_offset_t va)
PG_V = pmap_valid_bit(pmap);
if ((*pml5e & PG_V) == 0)
return (NULL);
- pml4e = (pml4_entry_t *)PHYS_TO_DMAP(*pml5e & PG_FRAME);
+ pml4e = PHYS_TO_DMAP(*pml5e & PG_FRAME);
} else {
pml4e = pmap->pm_pmltop;
}
@@ -1502,7 +1502,7 @@ pmap_pml4e_to_pdpe(pml4_entry_t *pml4e, vm_offset_t va)
{
pdp_entry_t *pdpe;
- pdpe = (pdp_entry_t *)PHYS_TO_DMAP(*pml4e & PG_FRAME);
+ pdpe = PHYS_TO_DMAP(*pml4e & PG_FRAME);
return (&pdpe[pmap_pdpe_index(va)]);
}
@@ -1528,7 +1528,7 @@ pmap_pdpe_to_pde(pdp_entry_t *pdpe, vm_offset_t va)
KASSERT((*pdpe & PG_PS) == 0,
("%s: pdpe %#lx is a leaf", __func__, *pdpe));
- pde = (pd_entry_t *)PHYS_TO_DMAP(*pdpe & PG_FRAME);
+ pde = PHYS_TO_DMAP(*pdpe & PG_FRAME);
return (&pde[pmap_pde_index(va)]);
}
@@ -1556,7 +1556,7 @@ pmap_pde_to_pte(pd_entry_t *pde, vm_offset_t va)
KASSERT((*pde & PG_PS) == 0,
("%s: pde %#lx is a leaf", __func__, *pde));
- pte = (pt_entry_t *)PHYS_TO_DMAP(*pde & PG_FRAME);
+ pte = PHYS_TO_DMAP(*pde & PG_FRAME);
return (&pte[pmap_pte_index(va)]);
}
@@ -2136,11 +2136,11 @@ pmap_bootstrap(vm_paddr_t *firstaddr)
vtopdem = ((1ul << (NPDEPGSHIFT + NPDPEPGSHIFT +
NPML4EPGSHIFT + NPML5EPGSHIFT)) - 1) << 3;
PDmap = (vm_offset_t)P5Dmap;
- kernel_pmap->pm_pmltop = (void *)PHYS_TO_DMAP(KPML5phys);
+ kernel_pmap->pm_pmltop = PHYS_TO_DMAP(KPML5phys);
kernel_pmap->pm_cr3 = KPML5phys;
pmap_pt_page_count_adj(kernel_pmap, 1); /* top-level page */
} else {
- kernel_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(KPML4phys);
+ kernel_pml4 = PHYS_TO_DMAP(KPML4phys);
kernel_pmap->pm_pmltop = kernel_pml4;
kernel_pmap->pm_cr3 = KPML4phys;
}
@@ -2612,7 +2612,7 @@ pmap_init(void)
continue;
/* Make the direct map consistent */
if (ppim->pa < dmaplimit && ppim->pa + ppim->sz <= dmaplimit) {
- (void)pmap_change_attr((void *)PHYS_TO_DMAP(ppim->pa),
+ (void)pmap_change_attr(PHYS_TO_DMAP(ppim->pa),
ppim->sz, ppim->mode);
}
if (!bootverbose)
@@ -3664,7 +3664,7 @@ pmap_invalidate_cache_pages(vm_page_t *pages, int count)
else if (cpu_vendor_id != CPU_VENDOR_INTEL)
mfence();
for (i = 0; i < count; i++) {
- daddr = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pages[i]));
+ daddr = PHYS_TO_DMAP_ADDR(VM_PAGE_TO_PHYS(pages[i]));
eva = daddr + PAGE_SIZE;
for (; daddr < eva; daddr += cpu_clflush_line_size) {
if (useclflushopt)
@@ -3715,8 +3715,8 @@ pmap_flush_cache_phys_range(vm_paddr_t spa, vm_paddr_t epa, vm_memattr_t mattr)
("pmap_flush_cache_phys_range: epa not page-aligned"));
if (spa < dmaplimit) {
- pmap_flush_cache_range(PHYS_TO_DMAP(spa), PHYS_TO_DMAP(MIN(
- dmaplimit, epa)));
+ pmap_flush_cache_range(PHYS_TO_DMAP_ADDR(spa),
+ PHYS_TO_DMAP_ADDR(MIN(dmaplimit, epa)));
if (dmaplimit >= epa)
return;
spa = dmaplimit;
@@ -3926,7 +3926,7 @@ pmap_kremove(vm_offset_t va)
void *
pmap_map(vm_offset_t *virt, vm_paddr_t start, vm_paddr_t end, int prot)
{
- return ((void *)PHYS_TO_DMAP(start));
+ return (PHYS_TO_DMAP(start));
}
/*
@@ -4233,7 +4233,7 @@ pmap_pinit_pml4(vm_page_t pml4pg)
pml4_entry_t *pm_pml4;
int i;
- pm_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pg));
+ pm_pml4 = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pg));
/* Wire in kernel global address entries. */
for (i = 0; i < NKPML4E; i++) {
@@ -4276,7 +4276,7 @@ pmap_pinit_pml5(vm_page_t pml5pg)
pml5_entry_t *pm_pml5;
int i;
- pm_pml5 = (pml5_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml5pg));
+ pm_pml5 = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml5pg));
for (i = 0; i < NPML5EPG / 2; i++)
pm_pml5[i] = 0;
for (; i < NPML5EPG; i++)
@@ -4289,7 +4289,7 @@ pmap_pinit_pml4_pti(vm_page_t pml4pgu)
pml4_entry_t *pm_pml4u;
int i;
- pm_pml4u = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pgu));
+ pm_pml4u = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4pgu));
for (i = 0; i < NPML4EPG; i++)
pm_pml4u[i] = pti_pml4[i];
}
@@ -4299,7 +4299,7 @@ pmap_pinit_pml5_pti(vm_page_t pml5pgu)
{
pml5_entry_t *pm_pml5u;
- pm_pml5u = (pml5_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml5pgu));
+ pm_pml5u = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml5pgu));
pagezero(pm_pml5u);
/*
@@ -4378,7 +4378,7 @@ pmap_pinit_type(pmap_t pmap, enum pmap_type pm_type, int flags)
pmap_pt_page_count_pinit(pmap, 1);
pmltop_phys = VM_PAGE_TO_PHYS(pmltop_pg);
- pmap->pm_pmltop = (pml5_entry_t *)PHYS_TO_DMAP(pmltop_phys);
+ pmap->pm_pmltop = PHYS_TO_DMAP(pmltop_phys);
if (pmap_pcid_enabled) {
if (pmap->pm_pcidp == NULL)
@@ -4414,7 +4414,7 @@ pmap_pinit_type(pmap_t pmap, enum pmap_type pm_type, int flags)
pmltop_pgu = pmap_alloc_pt_page(NULL, 0,
VM_ALLOC_WIRED | VM_ALLOC_WAITOK);
pmap_pt_page_count_pinit(pmap, 1);
- pmap->pm_pmltopu = (pml4_entry_t *)PHYS_TO_DMAP(
+ pmap->pm_pmltopu = PHYS_TO_DMAP(
VM_PAGE_TO_PHYS(pmltop_pgu));
if (pmap_is_la57(pmap))
pmap_pinit_pml5_pti(pmltop_pgu);
@@ -4489,7 +4489,7 @@ pmap_allocpte_getpml4(pmap_t pmap, struct rwlock **lockp, vm_offset_t va,
} else {
allocated = false;
}
- pml4 = (pml4_entry_t *)PHYS_TO_DMAP(*pml5 & PG_FRAME);
+ pml4 = PHYS_TO_DMAP(*pml5 & PG_FRAME);
pml4 = &pml4[pmap_pml4e_index(va)];
if ((*pml4 & PG_V) == 0) {
pml4pg = PHYS_TO_VM_PAGE(*pml5 & PG_FRAME);
@@ -4530,7 +4530,7 @@ pmap_allocpte_getpdp(pmap_t pmap, struct rwlock **lockp, vm_offset_t va,
} else {
allocated = false;
}
- pdp = (pdp_entry_t *)PHYS_TO_DMAP(*pml4 & PG_FRAME);
+ pdp = PHYS_TO_DMAP(*pml4 & PG_FRAME);
pdp = &pdp[pmap_pdpe_index(va)];
if ((*pdp & PG_V) == 0) {
pdppg = PHYS_TO_VM_PAGE(*pml4 & PG_FRAME);
@@ -4683,7 +4683,7 @@ pmap_allocpte_nosleep(pmap_t pmap, vm_pindex_t ptepindex, struct rwlock **lockp,
pdpg = PHYS_TO_VM_PAGE(*pdp & PG_FRAME);
pdpg->ref_count++;
}
- pd = (pd_entry_t *)PHYS_TO_DMAP(*pdp & PG_FRAME);
+ pd = PHYS_TO_DMAP(*pdp & PG_FRAME);
/* Now we know where the page directory page is */
pd = &pd[pmap_pde_index(va)];
@@ -4752,7 +4752,7 @@ retry:
else
return (NULL);
}
- pde = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pdpg));
+ pde = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pdpg));
pde = &pde[pmap_pde_index(va)];
} else
panic("pmap_alloc_pde: missing page table page for va %#lx",
@@ -4912,24 +4912,24 @@ pmap_kmsan_shadow_map_page_array(vm_paddr_t pdppa, vm_size_t size)
npde = size / NBPDR;
dummypa = vm_phys_early_alloc(-1, PAGE_SIZE);
- pagezero((void *)PHYS_TO_DMAP(dummypa));
+ pagezero(PHYS_TO_DMAP(dummypa));
dummypt = vm_phys_early_alloc(-1, PAGE_SIZE);
- pagezero((void *)PHYS_TO_DMAP(dummypt));
+ pagezero(PHYS_TO_DMAP(dummypt));
dummypd = vm_phys_early_alloc(-1, PAGE_SIZE * npdpg);
for (i = 0; i < npdpg; i++)
- pagezero((void *)PHYS_TO_DMAP(dummypd + ptoa(i)));
+ pagezero(PHYS_TO_DMAP(dummypd + ptoa(i)));
- pte = (pt_entry_t *)PHYS_TO_DMAP(dummypt);
+ pte = PHYS_TO_DMAP(dummypt);
for (i = 0; i < NPTEPG; i++)
pte[i] = (pt_entry_t)(dummypa | X86_PG_V | X86_PG_RW |
X86_PG_A | X86_PG_M | pg_nx);
- pde = (pd_entry_t *)PHYS_TO_DMAP(dummypd);
+ pde = PHYS_TO_DMAP(dummypd);
for (i = 0; i < npde; i++)
pde[i] = (pd_entry_t)(dummypt | X86_PG_V | X86_PG_RW | pg_nx);
- pdpe = (pdp_entry_t *)PHYS_TO_DMAP(pdppa);
+ pdpe = PHYS_TO_DMAP(pdppa);
for (i = 0; i < npdpg; i++)
pdpe[i] = (pdp_entry_t)(dummypd + ptoa(i) | X86_PG_V |
X86_PG_RW | pg_nx);
@@ -4977,7 +4977,7 @@ pmap_page_array_startup(long pages)
if ((*pdpe & X86_PG_V) == 0) {
pa = vm_phys_early_alloc(domain, PAGE_SIZE);
dump_add_page(pa);
- pagezero((void *)PHYS_TO_DMAP(pa));
+ pagezero(PHYS_TO_DMAP(pa));
*pdpe = (pdp_entry_t)(pa | X86_PG_V | X86_PG_RW |
X86_PG_A | X86_PG_M);
}
@@ -5549,7 +5549,7 @@ retry:
PV_STAT(counter_u64_add(pc_chunk_count, 1));
PV_STAT(counter_u64_add(pc_chunk_allocs, 1));
dump_add_page(m->phys_addr);
- pc = (void *)PHYS_TO_DMAP(m->phys_addr);
+ pc = PHYS_TO_DMAP(m->phys_addr);
pc->pc_pmap = pmap;
pc->pc_map[0] = PC_FREEN & ~1ul; /* preallocated bit 0 */
pc->pc_map[1] = PC_FREEN;
@@ -5649,7 +5649,7 @@ retry:
PV_STAT(counter_u64_add(pc_chunk_count, 1));
PV_STAT(counter_u64_add(pc_chunk_allocs, 1));
dump_add_page(m->phys_addr);
- pc = (void *)PHYS_TO_DMAP(m->phys_addr);
+ pc = PHYS_TO_DMAP(m->phys_addr);
pc->pc_pmap = pmap;
pc->pc_map[0] = PC_FREEN;
pc->pc_map[1] = PC_FREEN;
@@ -6035,7 +6035,7 @@ pmap_demote_pde_mpte(pmap_t pmap, pd_entry_t *pde, vm_offset_t va,
}
}
mptepa = VM_PAGE_TO_PHYS(mpte);
- firstpte = (pt_entry_t *)PHYS_TO_DMAP(mptepa);
+ firstpte = PHYS_TO_DMAP(mptepa);
newpde = mptepa | PG_M | PG_A | (oldpde & PG_U) | PG_RW | PG_V;
KASSERT((oldpde & (PG_M | PG_RW)) != PG_RW,
("pmap_demote_pde: oldpde is missing PG_M"));
@@ -6122,7 +6122,7 @@ pmap_remove_kernel_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va)
* contains valid mappings. Zero it to invalidate those mappings.
*/
if (vm_page_any_valid(mpte))
- pagezero((void *)PHYS_TO_DMAP(mptepa));
+ pagezero(PHYS_TO_DMAP(mptepa));
/*
* Demote the mapping.
@@ -6851,7 +6851,7 @@ pmap_promote_pde(pmap_t pmap, pd_entry_t *pde, vm_offset_t va, vm_page_t mpte,
* ineligible for promotion due to hardware errata, invalid, or does
* not map the first 4KB physical page within a 2MB page.
*/
- firstpte = (pt_entry_t *)PHYS_TO_DMAP(*pde & PG_FRAME);
+ firstpte = PHYS_TO_DMAP(*pde & PG_FRAME);
newpde = *firstpte;
if (!pmap_allow_2m_x_page(pmap, pmap_pde_ept_executable(pmap, newpde)))
return (false);
@@ -7027,7 +7027,7 @@ restart:
NULL, va);
if (mp == NULL)
goto allocf;
- pdpe = (pdp_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(mp));
+ pdpe = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(mp));
pdpe = &pdpe[pmap_pdpe_index(va)];
origpte = *pdpe;
MPASS(origpte == 0);
@@ -7048,7 +7048,7 @@ restart:
NULL, va);
if (mp == NULL)
goto allocf;
- pde = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(mp));
+ pde = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(mp));
pde = &pde[pmap_pde_index(va)];
origpte = *pde;
MPASS(origpte == 0);
@@ -7411,7 +7411,7 @@ pmap_every_pte_zero(vm_paddr_t pa)
pt_entry_t *pt_end, *pte;
KASSERT((pa & PAGE_MASK) == 0, ("pa is misaligned"));
- pte = (pt_entry_t *)PHYS_TO_DMAP(pa);
+ pte = PHYS_TO_DMAP(pa);
for (pt_end = pte + NPTEPG; pte < pt_end; pte++) {
if (*pte != 0)
return (false);
@@ -7757,7 +7757,7 @@ pmap_enter_quick_locked(pmap_t pmap, vm_offset_t va, vm_page_t m,
return (NULL);
}
}
- pte = (pt_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(mpte));
+ pte = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(mpte));
pte = &pte[pmap_pte_index(va)];
} else {
mpte = NULL;
@@ -8172,7 +8172,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len,
if (va_next > end_addr)
va_next = end_addr;
- src_pte = (pt_entry_t *)PHYS_TO_DMAP(srcptepaddr);
+ src_pte = PHYS_TO_DMAP(srcptepaddr);
src_pte = &src_pte[pmap_pte_index(addr)];
dstmpte = NULL;
for (; addr < va_next; addr += PAGE_SIZE, src_pte++) {
@@ -8192,8 +8192,7 @@ pmap_copy(pmap_t dst_pmap, pmap_t src_pmap, vm_offset_t dst_addr, vm_size_t len,
} else if ((dstmpte = pmap_allocpte(dst_pmap, addr,
NULL)) == NULL)
goto out;
- dst_pte = (pt_entry_t *)
- PHYS_TO_DMAP(VM_PAGE_TO_PHYS(dstmpte));
+ dst_pte = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(dstmpte));
dst_pte = &dst_pte[pmap_pte_index(addr)];
if (*dst_pte == 0 &&
pmap_try_insert_pv_entry(dst_pmap, addr,
@@ -8256,13 +8255,13 @@ pmap_vmspace_copy(pmap_t dst_pmap, pmap_t src_pmap)
void
pmap_zero_page(vm_page_t m)
{
- vm_offset_t va;
+ void *va;
#ifdef TSLOG_PAGEZERO
TSENTER();
#endif
va = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m));
- pagezero((void *)va);
+ pagezero(va);
#ifdef TSLOG_PAGEZERO
TSEXIT();
#endif
@@ -8275,10 +8274,10 @@ pmap_zero_page(vm_page_t m)
void
pmap_zero_page_area(vm_page_t m, int off, int size)
{
- vm_offset_t va = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m));
+ void *va = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m));
if (off == 0 && size == PAGE_SIZE)
- pagezero((void *)va);
+ pagezero(va);
else
bzero((char *)va + off, size);
}
@@ -8289,10 +8288,10 @@ pmap_zero_page_area(vm_page_t m, int off, int size)
void
pmap_copy_page(vm_page_t msrc, vm_page_t mdst)
{
- vm_offset_t src = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(msrc));
- vm_offset_t dst = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(mdst));
+ void *src = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(msrc));
+ void *dst = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(mdst));
- pagecopy((void *)src, (void *)dst);
+ pagecopy(src, dst);
}
int unmapped_buf_allowed = 1;
@@ -8555,8 +8554,7 @@ pmap_remove_pages(pmap_t pmap)
if ((tpte & (PG_PS | PG_V)) == PG_V) {
superpage = false;
ptepde = tpte;
- pte = (pt_entry_t *)PHYS_TO_DMAP(tpte &
- PG_FRAME);
+ pte = PHYS_TO_DMAP(tpte & PG_FRAME);
pte = &pte[pmap_pte_index(pv->pv_va)];
tpte = *pte;
} else {
@@ -9396,7 +9394,8 @@ static void *
pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags)
{
struct pmap_preinit_mapping *ppim;
- vm_offset_t va, offset;
+ char *va;
+ vm_offset_t offset;
vm_size_t tmpsize;
int i;
@@ -9405,7 +9404,7 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags)
pa = trunc_page(pa);
if (!pmap_initialized) {
- va = 0;
+ va = NULL;
for (i = 0; i < PMAP_PREINIT_MAPPING_COUNT; i++) {
ppim = pmap_preinit_mapping + i;
if (ppim->va == 0) {
@@ -9414,11 +9413,11 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags)
ppim->mode = mode;
ppim->va = virtual_avail;
virtual_avail += size;
- va = ppim->va;
+ va = (void *)ppim->va;
break;
}
}
- if (va == 0)
+ if (va == NULL)
panic("%s: too many preinit mappings", __func__);
} else {
/*
@@ -9429,7 +9428,7 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags)
if (ppim->pa == pa && ppim->sz == size &&
(ppim->mode == mode ||
(flags & MAPDEV_SETATTR) == 0))
- return ((void *)(ppim->va + offset));
+ return ((char *)ppim->va + offset);
}
/*
* If the specified range of physical addresses fits within
@@ -9445,18 +9444,20 @@ pmap_mapdev_internal(vm_paddr_t pa, vm_size_t size, int mode, int flags)
} else
i = 0;
if (!i)
- return ((void *)(va + offset));
+ return (va + offset);
}
- va = (vm_offset_t)kva_alloc(size);
- if (va == 0)
+ va = kva_alloc(size);
+ if (va == NULL)
panic("%s: Couldn't allocate KVA", __func__);
}
for (tmpsize = 0; tmpsize < size; tmpsize += PAGE_SIZE)
- pmap_kenter_attr(va + tmpsize, pa + tmpsize, mode);
- pmap_invalidate_range(kernel_pmap, va, va + tmpsize);
+ pmap_kenter_attr((vm_offset_t)va + tmpsize, pa + tmpsize, mode);
+ pmap_invalidate_range(kernel_pmap, (vm_offset_t)va,
+ (vm_offset_t)va + tmpsize);
if ((flags & MAPDEV_FLUSHCACHE) != 0)
- pmap_invalidate_cache_range(va, va + tmpsize);
- return ((void *)(va + offset));
+ pmap_invalidate_cache_range((vm_offset_t)va,
+ (vm_offset_t)va + tmpsize);
+ return (va + offset);
}
void *
@@ -9561,7 +9562,7 @@ pmap_demote_pdpe(pmap_t pmap, pdp_entry_t *pdpe, vm_offset_t va, vm_page_t m)
pmap_pt_page_count_adj(pmap, 1);
}
pdpgpa = VM_PAGE_TO_PHYS(pdpg);
- firstpde = (pd_entry_t *)PHYS_TO_DMAP(pdpgpa);
+ firstpde = PHYS_TO_DMAP(pdpgpa);
newpdpe = pdpgpa | PG_M | PG_A | (oldpdpe & PG_U) | PG_RW | PG_V;
KASSERT((oldpdpe & PG_A) != 0,
("pmap_demote_pdpe: oldpdpe is missing PG_A"));
@@ -9610,7 +9611,7 @@ pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma)
* required for data coherence.
*/
if ((m->flags & PG_FICTITIOUS) == 0 &&
- pmap_change_attr((void *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE,
+ pmap_change_attr(PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)), PAGE_SIZE,
m->md.pat_mode))
panic("memory attribute change on the direct map failed");
}
@@ -9660,7 +9661,7 @@ pmap_change_attr(void *va, vm_size_t size, int mode)
int error;
PMAP_LOCK(kernel_pmap);
- error = pmap_change_props_locked((vm_offset_t)va, size, PROT_NONE, mode,
+ error = pmap_change_props_locked(va, size, PROT_NONE, mode,
MAPDEV_FLUSHCACHE);
PMAP_UNLOCK(kernel_pmap);
return (error);
@@ -9683,17 +9684,17 @@ pmap_change_prot(void *va, vm_size_t size, vm_prot_t prot)
return (EINVAL);
PMAP_LOCK(kernel_pmap);
- error = pmap_change_props_locked((vm_offset_t)va, size, prot, -1,
+ error = pmap_change_props_locked(va, size, prot, -1,
MAPDEV_ASSERTVALID);
PMAP_UNLOCK(kernel_pmap);
return (error);
}
static int
-pmap_change_props_locked(vm_offset_t va, vm_size_t size, vm_prot_t prot,
+pmap_change_props_locked(void *addr, vm_size_t size, vm_prot_t prot,
int mode, int flags)
{
- vm_offset_t base, offset, tmpva;
+ vm_offset_t base, offset, tmpva, va;
vm_paddr_t pa_start, pa_end, pa_end1;
pdp_entry_t *pdpe;
pd_entry_t *pde, pde_bits, pde_mask;
@@ -9701,6 +9702,7 @@ pmap_change_props_locked(vm_offset_t va, vm_size_t size, vm_prot_t prot,
int error;
bool changed;
+ va = (vm_offset_t)addr;
PMAP_LOCK_ASSERT(kernel_pmap, MA_OWNED);
base = trunc_page(va);
offset = va & PAGE_MASK;
@@ -9956,7 +9958,7 @@ pmap_demote_DMAP(vm_paddr_t base, vm_size_t len, bool invalidate)
WITNESS_WARN(WARN_GIANTOK | WARN_SLEEPOK, NULL, "pmap_demote_DMAP");
if (len < NBPDP && base < dmaplimit) {
- va = PHYS_TO_DMAP(base);
+ va = PHYS_TO_DMAP_ADDR(base);
changed = false;
/*
@@ -10517,7 +10519,7 @@ pmap_map_io_transient(vm_page_t page[], void *vaddr[], int count,
vaddr[i] = (void *)addr;
needs_mapping = true;
} else {
- vaddr[i] = (void *)PHYS_TO_DMAP(paddr);
+ vaddr[i] = PHYS_TO_DMAP(paddr);
}
}
@@ -10584,7 +10586,7 @@ pmap_quick_enter_page(vm_page_t m)
paddr = VM_PAGE_TO_PHYS(m);
if (paddr < dmaplimit)
- return ((void *)PHYS_TO_DMAP(paddr));
+ return (PHYS_TO_DMAP(paddr));
mtx_lock_spin(&qframe_mtx);
KASSERT(*vtopte(qframe) == 0, ("qframe busy"));
@@ -10779,9 +10781,8 @@ pmap_large_map(vm_paddr_t spa, vm_size_t len, void **addr,
/* See if DMAP can serve. */
if (spa + len <= dmaplimit) {
- va = PHYS_TO_DMAP(spa);
- *addr = (void *)va;
- return (pmap_change_attr((void *)va, len, mattr));
+ *addr = PHYS_TO_DMAP(spa);
+ return (pmap_change_attr(*addr, len, mattr));
}
/*
@@ -11147,7 +11148,7 @@ pmap_pti_init(void)
pti_obj = vm_pager_allocate(OBJT_PHYS, NULL, 0, VM_PROT_ALL, 0, NULL);
VM_OBJECT_WLOCK(pti_obj);
pml4_pg = pmap_pti_alloc_page();
- pti_pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4_pg));
+ pti_pml4 = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pml4_pg));
for (va = kva_layout.km_low; va <= kva_layout.km_high &&
va >= kva_layout.km_low && va > NBPML4; va += NBPML4) {
pdpe = pmap_pti_pdpe(va);
@@ -11282,7 +11283,7 @@ pmap_pti_pde(vm_offset_t va)
mphys = *pdpe & ~PAGE_MASK;
}
- pde = (pd_entry_t *)PHYS_TO_DMAP(mphys);
+ pde = PHYS_TO_DMAP(mphys);
pd_idx = pmap_pde_index(va);
pde += pd_idx;
return (pde);
@@ -11320,7 +11321,7 @@ pmap_pti_pte(vm_offset_t va, bool *unwire_pde)
mphys = *pde & ~(PAGE_MASK | pg_nx);
}
- pte = (pt_entry_t *)PHYS_TO_DMAP(mphys);
+ pte = PHYS_TO_DMAP(mphys);
pte += pmap_pte_index(va);
return (pte);
@@ -12100,7 +12101,7 @@ restart:
continue;
}
pa = pml4e & PG_FRAME;
- pdp = (pdp_entry_t *)PHYS_TO_DMAP(pa);
+ pdp = PHYS_TO_DMAP(pa);
for (j = pmap_pdpe_index(sva); j < NPDPEPG; j++) {
pdpe = pdp[j];
@@ -12129,7 +12130,7 @@ restart:
sva += NBPDP;
goto restart;
}
- pd = (pd_entry_t *)PHYS_TO_DMAP(pa);
+ pd = PHYS_TO_DMAP(pa);
for (k = pmap_pde_index(sva); k < NPDEPG; k++) {
pde = pd[k];
@@ -12158,7 +12159,7 @@ restart:
sva += NBPDR;
goto restart;
}
- pt = (pt_entry_t *)PHYS_TO_DMAP(pa);
+ pt = PHYS_TO_DMAP(pa);
for (l = pmap_pte_index(sva); l < NPTEPG; l++,
sva += PAGE_SIZE) {
@@ -12248,7 +12249,7 @@ DB_SHOW_COMMAND(phys2dmap, pmap_phys2dmap)
if (have_addr) {
a = (vm_paddr_t)addr;
- db_printf("0x%jx\n", (uintmax_t)PHYS_TO_DMAP(a));
+ db_printf("%p\n", PHYS_TO_DMAP(a));
} else {
db_printf("show phys2dmap addr\n");
}
@@ -12276,7 +12277,7 @@ ptpages_show_pml4(vm_page_t pg4, int num_entries, uint64_t PG_V)
pd_entry_t *pd;
int i4, i3, i2;
- pml4 = (pml4_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pg4));
+ pml4 = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pg4));
for (i4 = 0; i4 < num_entries; i4++) {
if ((pml4[i4] & PG_V) == 0)
continue;
@@ -12286,7 +12287,7 @@ ptpages_show_pml4(vm_page_t pg4, int num_entries, uint64_t PG_V)
continue;
}
ptpages_show_page(3, i4, pg3);
- pdp = (pdp_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pg3));
+ pdp = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pg3));
for (i3 = 0; i3 < NPDPEPG; i3++) {
if ((pdp[i3] & PG_V) == 0)
continue;
@@ -12296,7 +12297,7 @@ ptpages_show_pml4(vm_page_t pg4, int num_entries, uint64_t PG_V)
continue;
}
ptpages_show_page(2, i3, pg2);
- pd = (pd_entry_t *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pg2));
+ pd = PHYS_TO_DMAP(VM_PAGE_TO_PHYS(pg2));
for (i2 = 0; i2 < NPDEPG; i2++) {
if ((pd[i2] & PG_V) == 0)
*** 2804 LINES SKIPPED ***