Skip site navigation (1)Skip section navigation (2)
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>