Date: Thu, 23 Apr 2026 18:16:14 +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: e27501388fc0 - main - pmap_qenter/qremove: Use void * instead of vm_offset_t Message-ID: <69ea61ee.46689.472d63b@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=e27501388fc0dc2a29f90cb24ba8d36e9bb6631f commit e27501388fc0dc2a29f90cb24ba8d36e9bb6631f 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 pmap_qenter/qremove: Use void * instead of vm_offset_t Effort: CHERI upstreaming Reviewed by: kib Sponsored by: AFRL, DARPA Pull Request: https://github.com/freebsd/freebsd-src/pull/2068 --- sys/amd64/amd64/mp_machdep.c | 2 +- sys/amd64/amd64/pmap.c | 17 ++++++++------- sys/arm/arm/mem.c | 2 +- sys/arm/arm/pmap-v6.c | 15 +++++++------ sys/arm/include/sf_buf.h | 4 ++-- sys/arm/nvidia/drm2/tegra_bo.c | 4 ++-- sys/arm64/arm64/pmap.c | 22 ++++++++++--------- sys/compat/linux/linux_vdso.c | 8 +++---- sys/compat/linuxkpi/common/src/linux_page.c | 23 ++++++++++---------- sys/dev/drm2/ttm/ttm_bo_util.c | 4 ++-- sys/dev/gve/gve_qpl.c | 12 +++++------ sys/dev/hwt/hwt_vm.c | 4 ++-- sys/dev/md/md.c | 11 +++++----- sys/dev/pci/controller/pci_n1sdp.c | 8 +++---- sys/dev/spibus/spigen.c | 12 +++++------ sys/fs/nfsclient/nfs_clbio.c | 6 +++--- sys/fs/p9fs/p9fs_vnops.c | 6 +++--- sys/fs/smbfs/smbfs_io.c | 12 +++++------ sys/geom/geom_io.c | 2 +- sys/i386/i386/mem.c | 2 +- sys/i386/i386/pmap.c | 22 ++++++++++--------- sys/i386/i386/pmap_base.c | 4 ++-- sys/i386/i386/vm_machdep.c | 2 +- sys/i386/include/pmap_base.h | 4 ++-- sys/kern/kern_kcov.c | 22 +++++++++---------- sys/kern/kern_physio.c | 5 ++--- sys/kern/kern_sharedpage.c | 6 +++--- sys/kern/vfs_aio.c | 4 ++-- sys/kern/vfs_bio.c | 33 +++++++++++++---------------- sys/kern/vfs_cluster.c | 10 ++++----- sys/powerpc/aim/mmu_oea.c | 12 +++++------ sys/powerpc/aim/mmu_oea64.c | 21 ++++++++++++------ sys/powerpc/aim/mmu_radix.c | 31 +++++++++++++-------------- sys/powerpc/booke/pmap.c | 17 ++++++++------- sys/powerpc/include/mmuvar.h | 4 ++-- sys/powerpc/powerpc/pmap_dispatch.c | 4 ++-- sys/riscv/riscv/pmap.c | 15 +++++++------ sys/sys/sf_buf.h | 2 +- sys/vm/pmap.h | 4 ++-- sys/vm/swap_pager.c | 6 +++--- sys/vm/uma_core.c | 16 ++++++++------ sys/vm/vm_glue.c | 6 +++--- sys/vm/vm_kern.c | 2 +- sys/vm/vnode_pager.c | 7 +++--- sys/x86/iommu/amd_drv.c | 4 ++-- 45 files changed, 224 insertions(+), 215 deletions(-) diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index c5c56024f561..eef3c5573e15 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -324,7 +324,7 @@ amd64_mp_alloc_pcpu(void) m = vm_page_alloc_noobj(VM_ALLOC_ZERO); if (m == NULL) panic("cannot alloc pcpu page for cpu %d", cpu); - pmap_qenter((vm_offset_t)&__pcpu[cpu], &m, 1); + pmap_qenter(&__pcpu[cpu], &m, 1); } } diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index bc4fa33fa175..1f4be4cf1a50 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -2442,7 +2442,7 @@ pmap_init_pv_table(void) vm_page_t m = vm_page_alloc_noobj_domain(domain, 0); if (m == NULL) panic("failed to allocate PV table page"); - pmap_qenter((vm_offset_t)pvd + j, &m, 1); + pmap_qenter((char *)pvd + j, &m, 1); } for (j = 0; j < s / sizeof(*pvd); j++) { @@ -3939,9 +3939,10 @@ pmap_map(vm_offset_t *virt, vm_paddr_t start, vm_paddr_t end, int prot) * Note: SMP coherent. Uses a ranged shootdown IPI. */ void -pmap_qenter(vm_offset_t sva, vm_page_t *ma, int count) +pmap_qenter(void *va, vm_page_t *ma, int count) { pt_entry_t *endpte, oldpte, pa, *pte; + vm_offset_t sva = (vm_offset_t)va; vm_page_t m; int cache_bits; @@ -3970,11 +3971,11 @@ pmap_qenter(vm_offset_t sva, vm_page_t *ma, int count) * Note: SMP coherent. Uses a ranged shootdown IPI. */ void -pmap_qremove(vm_offset_t sva, int count) +pmap_qremove(void *sva, int count) { vm_offset_t va; - va = sva; + va = (vm_offset_t)sva; while (count-- > 0) { /* * pmap_enter() calls within the kernel virtual @@ -3992,7 +3993,7 @@ pmap_qremove(vm_offset_t sva, int count) pmap_kremove(va); va += PAGE_SIZE; } - pmap_invalidate_range(kernel_pmap, sva, va); + pmap_invalidate_range(kernel_pmap, (vm_offset_t)sva, va); } /*************************************************** @@ -9520,7 +9521,7 @@ pmap_unmapdev(void *p, vm_size_t size) } } if (pmap_initialized) { - pmap_qremove(va, atop(size)); + pmap_qremove((void *)va, atop(size)); kva_free(va, size); } } @@ -10545,7 +10546,7 @@ pmap_map_io_transient(vm_page_t page[], void *vaddr[], int count, * thread to the CPU and instead add a global * mapping visible to all CPUs. */ - pmap_qenter((vm_offset_t)vaddr[i], &page[i], 1); + pmap_qenter(vaddr[i], &page[i], 1); } else { pmap_kenter_attr((vm_offset_t)vaddr[i], paddr, page[i]->md.pat_mode); @@ -10570,7 +10571,7 @@ pmap_unmap_io_transient(vm_page_t page[], void *vaddr[], int count, paddr = VM_PAGE_TO_PHYS(page[i]); if (paddr >= dmaplimit) { if (can_fault) - pmap_qremove((vm_offset_t)vaddr[i], 1); + pmap_qremove(vaddr[i], 1); vmem_free(kernel_arena, (vm_offset_t)vaddr[i], PAGE_SIZE); } diff --git a/sys/arm/arm/mem.c b/sys/arm/arm/mem.c index cec253f60b51..fbfd0759efc0 100644 --- a/sys/arm/arm/mem.c +++ b/sys/arm/arm/mem.c @@ -121,7 +121,7 @@ memrw(struct cdev *dev, struct uio *uio, int flags) c = min(c, (u_int)(PAGE_SIZE - o)); c = min(c, (u_int)iov->iov_len); error = uiomove((caddr_t)&_tmppt[o], (int)c, uio); - pmap_qremove((vm_offset_t)_tmppt, 1); + pmap_qremove(_tmppt, 1); sx_xunlock(&tmppt_lock); continue; } diff --git a/sys/arm/arm/pmap-v6.c b/sys/arm/arm/pmap-v6.c index a87e9ead64cd..5fe3d701e7ed 100644 --- a/sys/arm/arm/pmap-v6.c +++ b/sys/arm/arm/pmap-v6.c @@ -1819,8 +1819,9 @@ pmap_init(void) * Note: SMP coherent. Uses a ranged shootdown IPI. */ void -pmap_qenter(vm_offset_t sva, vm_page_t *ma, int count) +pmap_qenter(void *va, vm_page_t *ma, int count) { + vm_offset_t sva = (vm_offset_t)va; u_int anychanged; pt2_entry_t *epte2p, *pte2p, pte2; vm_page_t m; @@ -1851,16 +1852,16 @@ pmap_qenter(vm_offset_t sva, vm_page_t *ma, int count) * Note: SMP coherent. Uses a ranged shootdown IPI. */ void -pmap_qremove(vm_offset_t sva, int count) +pmap_qremove(void *sva, int count) { vm_offset_t va; - va = sva; + va = (vm_offset_t)sva; while (count-- > 0) { pmap_kremove(va); va += PAGE_SIZE; } - tlb_flush_range(sva, va - sva); + tlb_flush_range((vm_offset_t)sva, va - (vm_offset_t)sva); } /* @@ -2946,7 +2947,7 @@ pmap_pv_reclaim(pmap_t locked_pmap) PV_STAT(pc_chunk_frees++); /* Entire chunk is free; return it. */ m_pc = PHYS_TO_VM_PAGE(pmap_kextract((vm_offset_t)pc)); - pmap_qremove((vm_offset_t)pc, 1); + pmap_qremove(pc, 1); pmap_pte2list_free(&pv_vafree, (vm_offset_t)pc); break; } @@ -2979,7 +2980,7 @@ free_pv_chunk(struct pv_chunk *pc) PV_STAT(pc_chunk_frees++); /* entire chunk is free, return it */ m = PHYS_TO_VM_PAGE(pmap_kextract((vm_offset_t)pc)); - pmap_qremove((vm_offset_t)pc, 1); + pmap_qremove(pc, 1); vm_page_unwire_noq(m); vm_page_free(m); pmap_pte2list_free(&pv_vafree, (vm_offset_t)pc); @@ -3088,7 +3089,7 @@ retry: PV_STAT(pc_chunk_count++); PV_STAT(pc_chunk_allocs++); pc = (struct pv_chunk *)pmap_pte2list_alloc(&pv_vafree); - pmap_qenter((vm_offset_t)pc, &m, 1); + pmap_qenter(pc, &m, 1); pc->pc_pmap = pmap; pc->pc_map[0] = pc_freemask[0] & ~1ul; /* preallocated bit 0 */ for (field = 1; field < _NPCM; field++) diff --git a/sys/arm/include/sf_buf.h b/sys/arm/include/sf_buf.h index 2aa8ee3789c9..1e4066d58c81 100644 --- a/sys/arm/include/sf_buf.h +++ b/sys/arm/include/sf_buf.h @@ -33,14 +33,14 @@ static inline void sf_buf_map(struct sf_buf *sf, int flags) { - pmap_qenter(sf->kva, &(sf->m), 1); + pmap_qenter((void *)sf->kva, &(sf->m), 1); } static inline int sf_buf_unmap(struct sf_buf *sf) { - pmap_qremove(sf->kva, 1); + pmap_qremove((void *)sf->kva, 1); return (1); } #endif /* !_MACHINE_SF_BUF_H_ */ diff --git a/sys/arm/nvidia/drm2/tegra_bo.c b/sys/arm/nvidia/drm2/tegra_bo.c index 73ba82f2f883..c173936556ed 100644 --- a/sys/arm/nvidia/drm2/tegra_bo.c +++ b/sys/arm/nvidia/drm2/tegra_bo.c @@ -58,7 +58,7 @@ tegra_bo_destruct(struct tegra_bo *bo) size = round_page(bo->gem_obj.size); if (bo->vbase != 0) - pmap_qremove(bo->vbase, bo->npages); + pmap_qremove((void *)bo->vbase, bo->npages); vm_page_iter_init(&pages, bo->cdev_pager); VM_OBJECT_WLOCK(bo->cdev_pager); @@ -166,7 +166,7 @@ tegra_bo_init_pager(struct tegra_bo *bo) } VM_OBJECT_WUNLOCK(bo->cdev_pager); - pmap_qenter(bo->vbase, bo->m, bo->npages); + pmap_qenter((void *)bo->vbase, bo->m, bo->npages); return (0); } diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 0956f33bcd01..f715fe4f3222 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -1649,7 +1649,7 @@ pmap_init_pv_table(void) VM_ALLOC_ZERO); if (m == NULL) panic("failed to allocate PV table page"); - pmap_qenter((vm_offset_t)pvd + j, &m, 1); + pmap_qenter((char *)pvd + j, &m, 1); } for (j = 0; j < s / sizeof(*pvd); j++) { @@ -2575,7 +2575,7 @@ pmap_map(vm_offset_t *virt, vm_paddr_t start, vm_paddr_t end, int prot) * Note: SMP coherent. Uses a ranged shootdown IPI. */ void -pmap_qenter(vm_offset_t sva, vm_page_t *ma, int count) +pmap_qenter(void *sva, vm_page_t *ma, int count) { pd_entry_t *pde; pt_entry_t attr, old_l3e, *pte; @@ -2584,7 +2584,7 @@ pmap_qenter(vm_offset_t sva, vm_page_t *ma, int count) int i, lvl; old_l3e = 0; - va = sva; + va = (vm_offset_t)sva; for (i = 0; i < count; i++) { pde = pmap_pde(kernel_pmap, va, &lvl); KASSERT(pde != NULL, @@ -2602,7 +2602,8 @@ pmap_qenter(vm_offset_t sva, vm_page_t *ma, int count) va += L3_SIZE; } if ((old_l3e & ATTR_DESCR_VALID) != 0) - pmap_s1_invalidate_range(kernel_pmap, sva, va, true); + pmap_s1_invalidate_range(kernel_pmap, (vm_offset_t)sva, va, + true); else { /* * Because the old entries were invalid and the new mappings @@ -2617,16 +2618,17 @@ pmap_qenter(vm_offset_t sva, vm_page_t *ma, int count) * kernel -- it is meant only for temporary mappings. */ void -pmap_qremove(vm_offset_t sva, int count) +pmap_qremove(void *sva, int count) { pt_entry_t *pte; vm_offset_t va; - KASSERT(ADDR_IS_CANONICAL(sva), - ("%s: Address not in canonical form: %lx", __func__, sva)); - KASSERT(ADDR_IS_KERNEL(sva), ("usermode va %lx", sva)); + va = (vm_offset_t)sva; + + KASSERT(ADDR_IS_CANONICAL(va), + ("%s: Address not in canonical form: %p", __func__, sva)); + KASSERT(ADDR_IS_KERNEL(va), ("usermode va %p", sva)); - va = sva; while (count-- > 0) { pte = pmap_pte_exists(kernel_pmap, va, 3, NULL); if (pte != NULL) { @@ -2635,7 +2637,7 @@ pmap_qremove(vm_offset_t sva, int count) va += PAGE_SIZE; } - pmap_s1_invalidate_range(kernel_pmap, sva, va, true); + pmap_s1_invalidate_range(kernel_pmap, (vm_offset_t)sva, va, true); } /*************************************************** diff --git a/sys/compat/linux/linux_vdso.c b/sys/compat/linux/linux_vdso.c index a415a92783de..6e66aff69378 100644 --- a/sys/compat/linux/linux_vdso.c +++ b/sys/compat/linux/linux_vdso.c @@ -64,12 +64,12 @@ __elfN(linux_shared_page_init)(char **mapping, vm_size_t size) { vm_page_t m; vm_object_t obj; - vm_offset_t addr; + char *addr; size_t n, pages; pages = size / PAGE_SIZE; - addr = kva_alloc(size); + addr = (char *)kva_alloc(size); obj = vm_pager_allocate(OBJT_PHYS, 0, size, VM_PROT_DEFAULT, 0, NULL); VM_OBJECT_WLOCK(obj); @@ -81,7 +81,7 @@ __elfN(linux_shared_page_init)(char **mapping, vm_size_t size) pmap_qenter(addr + n * PAGE_SIZE, &m, 1); } VM_OBJECT_WUNLOCK(obj); - *mapping = (char *)addr; + *mapping = addr; return (obj); } @@ -92,7 +92,7 @@ __elfN(linux_shared_page_fini)(vm_object_t obj, void *mapping, vm_offset_t va; va = (vm_offset_t)mapping; - pmap_qremove(va, size / PAGE_SIZE); + pmap_qremove(mapping, size / PAGE_SIZE); kva_free(va, size); vm_object_deallocate(obj); } diff --git a/sys/compat/linuxkpi/common/src/linux_page.c b/sys/compat/linuxkpi/common/src/linux_page.c index d8b65a12dc67..41f5fd557330 100644 --- a/sys/compat/linuxkpi/common/src/linux_page.c +++ b/sys/compat/linuxkpi/common/src/linux_page.c @@ -424,17 +424,17 @@ iounmap(void *addr) void * vmap(struct page **pages, unsigned int count, unsigned long flags, int prot) { - vm_offset_t off; + void *off; size_t size; size = count * PAGE_SIZE; - off = kva_alloc(size); - if (off == 0) + off = (void *)kva_alloc(size); + if (off == NULL) return (NULL); - vmmap_add((void *)off, size); + vmmap_add(off, size); pmap_qenter(off, pages, count); - return ((void *)off); + return (off); } #define VMAP_MAX_CHUNK_SIZE (65536U / sizeof(struct vm_page)) /* KMEM_ZMAX */ @@ -443,17 +443,18 @@ void * linuxkpi_vmap_pfn(unsigned long *pfns, unsigned int count, int prot) { vm_page_t m, *ma, fma; - vm_offset_t off, coff; + void *off; + char *coff; vm_paddr_t pa; vm_memattr_t attr; size_t size; unsigned int i, c, chunk; size = ptoa(count); - off = kva_alloc(size); - if (off == 0) + off = (void *)kva_alloc(size); + if (off == NULL) return (NULL); - vmmap_add((void *)off, size); + vmmap_add(off, size); chunk = MIN(count, VMAP_MAX_CHUNK_SIZE); attr = pgprot2cachemode(prot); @@ -489,7 +490,7 @@ linuxkpi_vmap_pfn(unsigned long *pfns, unsigned int count, int prot) free(fma, M_TEMP); free(ma, M_TEMP); - return ((void *)off); + return (off); } void @@ -500,7 +501,7 @@ vunmap(void *addr) vmmap = vmmap_remove(addr); if (vmmap == NULL) return; - pmap_qremove((vm_offset_t)addr, vmmap->vm_size / PAGE_SIZE); + pmap_qremove(addr, vmmap->vm_size / PAGE_SIZE); kva_free((vm_offset_t)addr, vmmap->vm_size); kfree(vmmap); } diff --git a/sys/dev/drm2/ttm/ttm_bo_util.c b/sys/dev/drm2/ttm/ttm_bo_util.c index 9d3f4103f82e..1734a8103cde 100644 --- a/sys/dev/drm2/ttm/ttm_bo_util.c +++ b/sys/dev/drm2/ttm/ttm_bo_util.c @@ -517,7 +517,7 @@ static int ttm_bo_kmap_ttm(struct ttm_buffer_object *bo, pmap_page_set_memattr(ttm->pages[start_page + i], prot); } - pmap_qenter((vm_offset_t)map->virtual, + pmap_qenter(map->virtual, &ttm->pages[start_page], num_pages); } } @@ -571,7 +571,7 @@ void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map) pmap_unmapdev(map->virtual, map->size); break; case ttm_bo_map_vmap: - pmap_qremove((vm_offset_t)(map->virtual), map->num_pages); + pmap_qremove(map->virtual, map->num_pages); kva_free((vm_offset_t)map->virtual, map->num_pages * PAGE_SIZE); break; diff --git a/sys/dev/gve/gve_qpl.c b/sys/dev/gve/gve_qpl.c index 0e7098dcd4a1..1c6a58372365 100644 --- a/sys/dev/gve/gve_qpl.c +++ b/sys/dev/gve/gve_qpl.c @@ -46,7 +46,7 @@ gve_free_qpl(struct gve_priv *priv, struct gve_queue_page_list *qpl) } if (qpl->kva) { - pmap_qremove(qpl->kva, qpl->num_pages); + pmap_qremove((void *)qpl->kva, qpl->num_pages); kva_free(qpl->kva, PAGE_SIZE * qpl->num_pages); } @@ -59,7 +59,7 @@ gve_free_qpl(struct gve_priv *priv, struct gve_queue_page_list *qpl) */ if (vm_page_unwire_noq(qpl->pages[i])) { if (!qpl->kva) { - pmap_qremove((vm_offset_t)qpl->dmas[i].cpu_addr, 1); + pmap_qremove(qpl->dmas[i].cpu_addr, 1); kva_free((vm_offset_t)qpl->dmas[i].cpu_addr, PAGE_SIZE); } vm_page_free(qpl->pages[i]); @@ -126,7 +126,7 @@ gve_alloc_qpl(struct gve_priv *priv, uint32_t id, int npages, bool single_kva) err = ENOMEM; goto abort; } - pmap_qenter((vm_offset_t)qpl->dmas[i].cpu_addr, &(qpl->pages[i]), 1); + pmap_qenter(qpl->dmas[i].cpu_addr, &(qpl->pages[i]), 1); } else qpl->dmas[i].cpu_addr = (void *)(qpl->kva + (PAGE_SIZE * i)); @@ -135,7 +135,7 @@ gve_alloc_qpl(struct gve_priv *priv, uint32_t id, int npages, bool single_kva) } if (single_kva) - pmap_qenter(qpl->kva, qpl->pages, npages); + pmap_qenter((void *)qpl->kva, qpl->pages, npages); for (i = 0; i < npages; i++) { err = gve_dmamap_create(priv, /*size=*/PAGE_SIZE, /*align=*/PAGE_SIZE, @@ -244,7 +244,7 @@ void gve_mextadd_free(struct mbuf *mbuf) { vm_page_t page = (vm_page_t)mbuf->m_ext.ext_arg1; - vm_offset_t va = (vm_offset_t)mbuf->m_ext.ext_arg2; + void *va = mbuf->m_ext.ext_arg2; /* * Free the page only if this is the last ref. @@ -253,7 +253,7 @@ gve_mextadd_free(struct mbuf *mbuf) */ if (__predict_false(vm_page_unwire_noq(page))) { pmap_qremove(va, 1); - kva_free(va, PAGE_SIZE); + kva_free((vm_offset_t)va, PAGE_SIZE); vm_page_free(page); } } diff --git a/sys/dev/hwt/hwt_vm.c b/sys/dev/hwt/hwt_vm.c index 6c55e218dcec..a3e906d71099 100644 --- a/sys/dev/hwt/hwt_vm.c +++ b/sys/dev/hwt/hwt_vm.c @@ -171,7 +171,7 @@ retry: VM_OBJECT_WLOCK(vm->obj); vm_page_insert(m, vm->obj, i); if (kva_req) - pmap_qenter(vm->kvaddr + i * PAGE_SIZE, &m, 1); + pmap_qenter((char *)vm->kvaddr + i * PAGE_SIZE, &m, 1); VM_OBJECT_WUNLOCK(vm->obj); } @@ -442,7 +442,7 @@ hwt_vm_destroy_buffers(struct hwt_vm *vm) int i; if (vm->ctx->hwt_backend->kva_req && vm->kvaddr != 0) { - pmap_qremove(vm->kvaddr, vm->npages); + pmap_qremove((void *)vm->kvaddr, vm->npages); kva_free(vm->kvaddr, vm->npages * PAGE_SIZE); } VM_OBJECT_WLOCK(vm->obj); diff --git a/sys/dev/md/md.c b/sys/dev/md/md.c index 8d2908264aac..e2c0451b5843 100644 --- a/sys/dev/md/md.c +++ b/sys/dev/md/md.c @@ -286,7 +286,7 @@ struct md_s { struct { struct vnode *vnode; char file[PATH_MAX]; - vm_offset_t kva; + char *kva; } s_vnode; /* MD_SWAP related fields */ @@ -983,8 +983,7 @@ unmapped_step: ("npages %d too large", npages)); pmap_qenter(sc->s_vnode.kva, &bp->bio_ma[atop(ma_offs)], npages); - aiov.iov_base = (void *)(sc->s_vnode.kva + (ma_offs & - PAGE_MASK)); + aiov.iov_base = sc->s_vnode.kva + (ma_offs & PAGE_MASK); aiov.iov_len = iolen; auio.uio_iov = &aiov; auio.uio_iovcnt = 1; @@ -1513,7 +1512,7 @@ mdcreate_vnode(struct md_s *sc, struct md_req *mdr, struct thread *td) goto bad; } - sc->s_vnode.kva = kva_alloc(maxphys + PAGE_SIZE); + sc->s_vnode.kva = (char *)kva_alloc(maxphys + PAGE_SIZE); return (0); bad: VOP_UNLOCK(nd.ni_vp); @@ -1567,8 +1566,8 @@ mddestroy(struct md_s *sc, struct thread *td) sc->flags & MD_READONLY ? FREAD : (FREAD|FWRITE), sc->cred, td); } - if (sc->s_vnode.kva != 0) - kva_free(sc->s_vnode.kva, maxphys + PAGE_SIZE); + if (sc->s_vnode.kva != NULL) + kva_free((vm_offset_t)sc->s_vnode.kva, maxphys + PAGE_SIZE); break; case MD_SWAP: if (sc->s_swap.object != NULL) diff --git a/sys/dev/pci/controller/pci_n1sdp.c b/sys/dev/pci/controller/pci_n1sdp.c index 22f0ea27d45b..c1f8624e45aa 100644 --- a/sys/dev/pci/controller/pci_n1sdp.c +++ b/sys/dev/pci/controller/pci_n1sdp.c @@ -83,7 +83,7 @@ static int n1sdp_init(struct generic_pcie_n1sdp_softc *sc) { struct pcie_discovery_data *shared_data; - vm_offset_t vaddr; + void *vaddr; vm_paddr_t paddr_rc; vm_paddr_t paddr; vm_page_t m[BDF_TABLE_SIZE / PAGE_SIZE]; @@ -100,8 +100,8 @@ n1sdp_init(struct generic_pcie_n1sdp_softc *sc) MPASS(m[i] != NULL); } - vaddr = kva_alloc((vm_size_t)BDF_TABLE_SIZE); - if (vaddr == 0) { + vaddr = (void *)kva_alloc((vm_size_t)BDF_TABLE_SIZE); + if (vaddr == NULL) { printf("%s: Can't allocate KVA memory.", __func__); error = ENXIO; goto out; @@ -130,7 +130,7 @@ n1sdp_init(struct generic_pcie_n1sdp_softc *sc) out_pmap: pmap_qremove(vaddr, nitems(m)); - kva_free(vaddr, (vm_size_t)BDF_TABLE_SIZE); + kva_free((vm_offset_t)vaddr, (vm_size_t)BDF_TABLE_SIZE); out: vm_phys_fictitious_unreg_range(paddr, paddr + BDF_TABLE_SIZE); diff --git a/sys/dev/spibus/spigen.c b/sys/dev/spibus/spigen.c index 94f276d239f3..400ae1e139ad 100644 --- a/sys/dev/spibus/spigen.c +++ b/sys/dev/spibus/spigen.c @@ -73,7 +73,7 @@ struct spigen_softc { struct spigen_mmap { vm_object_t bufobj; - vm_offset_t kvaddr; + void *kvaddr; size_t bufsize; }; @@ -235,10 +235,10 @@ spigen_transfer_mmapped(struct cdev *cdev, struct spigen_transfer_mmapped *stm) if (mmap->bufsize < stm->stm_command_length + stm->stm_data_length) return (E2BIG); - transfer.tx_cmd = transfer.rx_cmd = (void *)((uintptr_t)mmap->kvaddr); + transfer.tx_cmd = transfer.rx_cmd = mmap->kvaddr; transfer.tx_cmd_sz = transfer.rx_cmd_sz = stm->stm_command_length; transfer.tx_data = transfer.rx_data = - (void *)((uintptr_t)mmap->kvaddr + stm->stm_command_length); + (void *)((char *)mmap->kvaddr + stm->stm_command_length); transfer.tx_data_sz = transfer.rx_data_sz = stm->stm_data_length; error = SPIBUS_TRANSFER(device_get_parent(dev), dev, &transfer); @@ -283,9 +283,9 @@ spigen_mmap_cleanup(void *arg) { struct spigen_mmap *mmap = arg; - if (mmap->kvaddr != 0) { + if (mmap->kvaddr != NULL) { pmap_qremove(mmap->kvaddr, mmap->bufsize / PAGE_SIZE); - kva_free(mmap->kvaddr, mmap->bufsize); + kva_free((vm_offset_t)mmap->kvaddr, mmap->bufsize); } if (mmap->bufobj != NULL) vm_object_deallocate(mmap->bufobj); @@ -312,7 +312,7 @@ spigen_mmap_single(struct cdev *cdev, vm_ooffset_t *offset, return (EBUSY); mmap = malloc(sizeof(*mmap), M_DEVBUF, M_ZERO | M_WAITOK); - if ((mmap->kvaddr = kva_alloc(size)) == 0) { + if ((mmap->kvaddr = (void *)kva_alloc(size)) == 0) { spigen_mmap_cleanup(mmap); return (ENOMEM); } diff --git a/sys/fs/nfsclient/nfs_clbio.c b/sys/fs/nfsclient/nfs_clbio.c index b534a2eb5555..421fb08761b1 100644 --- a/sys/fs/nfsclient/nfs_clbio.c +++ b/sys/fs/nfsclient/nfs_clbio.c @@ -116,7 +116,7 @@ ncl_getpages(struct vop_getpages_args *ap) int i, error, nextoff, size, toff, count, npages; struct uio uio; struct iovec iov; - vm_offset_t kva; + void *kva; struct buf *bp; struct vnode *vp; struct thread *td; @@ -180,13 +180,13 @@ ncl_getpages(struct vop_getpages_args *ap) */ bp = uma_zalloc(ncl_pbuf_zone, M_WAITOK); - kva = (vm_offset_t) bp->b_data; + kva = bp->b_data; pmap_qenter(kva, pages, npages); VM_CNT_INC(v_vnodein); VM_CNT_ADD(v_vnodepgsin, npages); count = npages << PAGE_SHIFT; - iov.iov_base = (caddr_t) kva; + iov.iov_base = kva; iov.iov_len = count; uio.uio_iov = &iov; uio.uio_iovcnt = 1; diff --git a/sys/fs/p9fs/p9fs_vnops.c b/sys/fs/p9fs/p9fs_vnops.c index 081903d73e5e..7141e9700602 100644 --- a/sys/fs/p9fs/p9fs_vnops.c +++ b/sys/fs/p9fs/p9fs_vnops.c @@ -2179,7 +2179,7 @@ p9fs_putpages(struct vop_putpages_args *ap) struct ucred *cred; struct p9fs_node *np; vm_page_t *pages; - vm_offset_t kva; + void *kva; struct buf *bp; vp = ap->a_vp; @@ -2205,13 +2205,13 @@ p9fs_putpages(struct vop_putpages_args *ap) rtvals[i] = VM_PAGER_ERROR; bp = uma_zalloc(p9fs_pbuf_zone, M_WAITOK); - kva = (vm_offset_t) bp->b_data; + kva = bp->b_data; pmap_qenter(kva, pages, npages); VM_CNT_INC(v_vnodeout); VM_CNT_ADD(v_vnodepgsout, count); - iov.iov_base = (caddr_t) kva; + iov.iov_base = kva; iov.iov_len = count; uio.uio_iov = &iov; uio.uio_iovcnt = 1; diff --git a/sys/fs/smbfs/smbfs_io.c b/sys/fs/smbfs/smbfs_io.c index 8c484381ed59..8a37427aa4cb 100644 --- a/sys/fs/smbfs/smbfs_io.c +++ b/sys/fs/smbfs/smbfs_io.c @@ -425,7 +425,7 @@ smbfs_getpages(struct vop_getpages_args *ap) int i, error, nextoff, size, toff, npages, count; struct uio uio; struct iovec iov; - vm_offset_t kva; + void *kva; struct buf *bp; struct vnode *vp; struct thread *td; @@ -466,13 +466,13 @@ smbfs_getpages(struct vop_getpages_args *ap) bp = uma_zalloc(smbfs_pbuf_zone, M_WAITOK); - kva = (vm_offset_t) bp->b_data; + kva = bp->b_data; pmap_qenter(kva, pages, npages); VM_CNT_INC(v_vnodein); VM_CNT_ADD(v_vnodepgsin, npages); count = npages << PAGE_SHIFT; - iov.iov_base = (caddr_t) kva; + iov.iov_base = kva; iov.iov_len = count; uio.uio_iov = &iov; uio.uio_iovcnt = 1; @@ -559,7 +559,7 @@ smbfs_putpages(struct vop_putpages_args *ap) #else struct uio uio; struct iovec iov; - vm_offset_t kva; + void *kva; struct buf *bp; int i, npages, count; int *rtvals; @@ -584,12 +584,12 @@ smbfs_putpages(struct vop_putpages_args *ap) bp = uma_zalloc(smbfs_pbuf_zone, M_WAITOK); - kva = (vm_offset_t) bp->b_data; + kva = bp->b_data; pmap_qenter(kva, pages, npages); VM_CNT_INC(v_vnodeout); VM_CNT_ADD(v_vnodepgsout, count); - iov.iov_base = (caddr_t) kva; + iov.iov_base = kva; iov.iov_len = count; uio.uio_iov = &iov; uio.uio_iovcnt = 1; diff --git a/sys/geom/geom_io.c b/sys/geom/geom_io.c index 247a623bf1bf..2eb9b18999bf 100644 --- a/sys/geom/geom_io.c +++ b/sys/geom/geom_io.c @@ -782,7 +782,7 @@ retry: } } atomic_add_int(&inflight_transient_maps, 1); - pmap_qenter((vm_offset_t)addr, bp->bio_ma, OFF_TO_IDX(size)); + pmap_qenter((void *)addr, bp->bio_ma, OFF_TO_IDX(size)); bp->bio_data = (caddr_t)addr + bp->bio_ma_offset; bp->bio_flags |= BIO_TRANSIENT_MAPPING; bp->bio_flags &= ~BIO_UNMAPPED; diff --git a/sys/i386/i386/mem.c b/sys/i386/i386/mem.c index 3a3d6974f42e..d418506e6c09 100644 --- a/sys/i386/i386/mem.c +++ b/sys/i386/i386/mem.c @@ -142,7 +142,7 @@ memrw(struct cdev *dev, struct uio *uio, int flags) c = PAGE_SIZE - o; c = min(c, (u_int)iov->iov_len); error = uiomove((caddr_t)&ptvmmap[o], (int)c, uio); - pmap_qremove((vm_offset_t)ptvmmap, 1); + pmap_qremove(ptvmmap, 1); sx_xunlock(&memsxlock); } diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index fcc6160bac3d..9d758bc2b63d 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -1845,11 +1845,13 @@ __CONCAT(PMTYPE, map)(vm_offset_t *virt, vm_paddr_t start, vm_paddr_t end, * Note: SMP coherent. Uses a ranged shootdown IPI. */ static void -__CONCAT(PMTYPE, qenter)(vm_offset_t sva, vm_page_t *ma, int count) +__CONCAT(PMTYPE, qenter)(void *va, vm_page_t *ma, int count) { + vm_offset_t sva; pt_entry_t *endpte, oldpte, pa, *pte; vm_page_t m; + sva = (vm_offset_t)va; oldpte = 0; pte = vtopte(sva); endpte = pte + count; @@ -1874,16 +1876,16 @@ __CONCAT(PMTYPE, qenter)(vm_offset_t sva, vm_page_t *ma, int count) * Note: SMP coherent. Uses a ranged shootdown IPI. */ static void -__CONCAT(PMTYPE, qremove)(vm_offset_t sva, int count) +__CONCAT(PMTYPE, qremove)(void *sva, int count) { vm_offset_t va; - va = sva; + va = (vm_offset_t)sva; while (count-- > 0) { pmap_kremove(va); va += PAGE_SIZE; } - pmap_invalidate_range_int(kernel_pmap, sva, va); + pmap_invalidate_range_int(kernel_pmap, (vm_offset_t)sva, va); } /*************************************************** @@ -2085,7 +2087,7 @@ __CONCAT(PMTYPE, pinit)(pmap_t pmap) #endif } - pmap_qenter((vm_offset_t)pmap->pm_pdir, pmap->pm_ptdpg, NPGPTD); + pmap_qenter(pmap->pm_pdir, pmap->pm_ptdpg, NPGPTD); #ifdef PMAP_PAE_COMP if ((cpu_feature & CPUID_PAT) == 0) { pmap_invalidate_cache_range( @@ -2220,7 +2222,7 @@ __CONCAT(PMTYPE, release)(pmap_t pmap) KASSERT(CPU_EMPTY(&pmap->pm_active), ("releasing active pmap %p", pmap)); - pmap_qremove((vm_offset_t)pmap->pm_pdir, NPGPTD); + pmap_qremove(pmap->pm_pdir, NPGPTD); for (i = 0; i < NPGPTD; i++) { m = pmap->pm_ptdpg[i]; @@ -2414,7 +2416,7 @@ pmap_pv_reclaim(pmap_t locked_pmap) PV_STAT(pc_chunk_frees++); /* Entire chunk is free; return it. */ m_pc = PHYS_TO_VM_PAGE(pmap_kextract((vm_offset_t)pc)); - pmap_qremove((vm_offset_t)pc, 1); + pmap_qremove(pc, 1); pmap_ptelist_free(&pv_vafree, (vm_offset_t)pc); break; } @@ -2484,7 +2486,7 @@ free_pv_chunk(struct pv_chunk *pc) PV_STAT(pc_chunk_frees++); /* entire chunk is free, return it */ m = PHYS_TO_VM_PAGE(pmap_kextract((vm_offset_t)pc)); - pmap_qremove((vm_offset_t)pc, 1); + pmap_qremove(pc, 1); vm_page_unwire_noq(m); vm_page_free(m); pmap_ptelist_free(&pv_vafree, (vm_offset_t)pc); @@ -2556,7 +2558,7 @@ retry: PV_STAT(pc_chunk_count++); PV_STAT(pc_chunk_allocs++); pc = (struct pv_chunk *)pmap_ptelist_alloc(&pv_vafree); - pmap_qenter((vm_offset_t)pc, &m, 1); + pmap_qenter(pc, &m, 1); pc->pc_pmap = pmap; pc->pc_map[0] = pc_freemask[0] & ~1ul; /* preallocated bit 0 */ for (field = 1; field < _NPCM; field++) @@ -5608,7 +5610,7 @@ __CONCAT(PMTYPE, unmapdev)(void *p, vm_size_t size) } } if (pmap_initialized) { - pmap_qremove(va, atop(size)); + pmap_qremove((void *)va, atop(size)); kva_free(va, size); } } diff --git a/sys/i386/i386/pmap_base.c b/sys/i386/i386/pmap_base.c index cfa2faa304fd..0137a4fb26f1 100644 --- a/sys/i386/i386/pmap_base.c +++ b/sys/i386/i386/pmap_base.c @@ -844,14 +844,14 @@ pmap_map(vm_offset_t *virt, vm_paddr_t start, vm_paddr_t end, int prot) } void -pmap_qenter(vm_offset_t sva, vm_page_t *ma, int count) +pmap_qenter(void *sva, vm_page_t *ma, int count) { pmap_methods_ptr->pm_qenter(sva, ma, count); } void -pmap_qremove(vm_offset_t sva, int count) +pmap_qremove(void *sva, int count) { pmap_methods_ptr->pm_qremove(sva, count); diff --git a/sys/i386/i386/vm_machdep.c b/sys/i386/i386/vm_machdep.c index 698d3b26813c..2d8491c38dab 100644 --- a/sys/i386/i386/vm_machdep.c +++ b/sys/i386/i386/vm_machdep.c @@ -622,7 +622,7 @@ sf_buf_invalidate(struct sf_buf *sf) * existing mapping, in particular, the PAT * settings are recalculated. */ - pmap_qenter(sf->kva, &m, 1); + pmap_qenter((void *)sf->kva, &m, 1); pmap_invalidate_cache_range(sf->kva, sf->kva + PAGE_SIZE); } diff --git a/sys/i386/include/pmap_base.h b/sys/i386/include/pmap_base.h index a82d8712fbb6..5ae2f3c8b366 100644 --- a/sys/i386/include/pmap_base.h +++ b/sys/i386/include/pmap_base.h @@ -99,8 +99,8 @@ struct pmap_methods { vm_paddr_t (*pm_extract)(pmap_t, vm_offset_t); vm_page_t (*pm_extract_and_hold)(pmap_t, vm_offset_t, vm_prot_t); vm_offset_t (*pm_map)(vm_offset_t *, vm_paddr_t, vm_paddr_t, int); - void (*pm_qenter)(vm_offset_t sva, vm_page_t *, int); - void (*pm_qremove)(vm_offset_t, int); + void (*pm_qenter)(void *sva, vm_page_t *, int); + void (*pm_qremove)(void *, int); void (*pm_release)(pmap_t); void (*pm_protect)(pmap_t, vm_offset_t, vm_offset_t, vm_prot_t); void (*pm_remove)(pmap_t, vm_offset_t, vm_offset_t); diff --git a/sys/kern/kern_kcov.c b/sys/kern/kern_kcov.c index c0f3d9dca6c6..fde032a03212 100644 --- a/sys/kern/kern_kcov.c +++ b/sys/kern/kern_kcov.c @@ -124,7 +124,7 @@ typedef enum { struct kcov_info { struct thread *thread; /* (l) */ vm_object_t bufobj; /* (o) */ - vm_offset_t kvaddr; /* (o) */ + void *kvaddr; /* (o) */ size_t entries; /* (o) */ size_t bufsize; /* (o) */ kcov_state_t state; /* (s) */ @@ -206,9 +206,9 @@ trace_pc(uintptr_t ret) if (info->mode != KCOV_MODE_TRACE_PC) return; - KASSERT(info->kvaddr != 0, ("%s: NULL buf while running", __func__)); + KASSERT(info->kvaddr != NULL, ("%s: NULL buf while running", __func__)); - buf = (uint64_t *)info->kvaddr; + buf = info->kvaddr; /* The first entry of the buffer holds the index */ index = buf[0]; @@ -237,9 +237,9 @@ trace_cmp(uint64_t type, uint64_t arg1, uint64_t arg2, uint64_t ret) if (info->mode != KCOV_MODE_TRACE_CMP) return (false); - KASSERT(info->kvaddr != 0, ("%s: NULL buf while running", __func__)); + KASSERT(info->kvaddr != NULL, ("%s: NULL buf while running", __func__)); - buf = (uint64_t *)info->kvaddr; + buf = info->kvaddr; *** 828 LINES SKIPPED ***home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ea61ee.46689.472d63b>
