Date: Thu, 23 Apr 2026 18:16:24 +0000 From: John Baldwin <jhb@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: fe3e92e6868d - main - PHYS_TO_DMAP: Return a void * instead of a vm_offset_t Message-ID: <69ea61f8.462af.52ce2f98@gitrepo.freebsd.org>
index | next in thread | raw e-mail
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 ***home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ea61f8.462af.52ce2f98>
