Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Apr 2026 18:16:07 +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: 115065459ced - main - pmap_quick_(enter|remove)_page: Use void * instead of vm_offset_t
Message-ID:  <69ea61e7.464c1.1e2f0dd7@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=115065459cedf21a391f749fedb077b82b76ce67

commit 115065459cedf21a391f749fedb077b82b76ce67
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2026-04-23 17:05:53 +0000
Commit:     John Baldwin <jhb@FreeBSD.org>
CommitDate: 2026-04-23 17:05:53 +0000

    pmap_quick_(enter|remove)_page: 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/pmap.c                             | 10 ++--
 sys/arm/arm/busdma_machdep.c                       | 62 +++++++++++-----------
 sys/arm/arm/pmap-v6.c                              |  9 ++--
 sys/arm64/arm64/busdma_bounce.c                    | 56 +++++++++----------
 sys/arm64/arm64/pmap.c                             |  6 +--
 .../vchiq/interface/vchiq_arm/vchiq_2835_arm.c     | 10 ++--
 sys/dev/ata/ata-lowlevel.c                         | 24 ++++-----
 sys/dev/xen/gntdev/gntdev.c                        |  4 +-
 sys/i386/i386/pmap.c                               |  9 ++--
 sys/i386/i386/pmap_base.c                          |  4 +-
 sys/i386/include/pmap_base.h                       |  4 +-
 sys/powerpc/aim/mmu_oea.c                          | 10 ++--
 sys/powerpc/aim/mmu_oea64.c                        | 18 +++----
 sys/powerpc/aim/mmu_radix.c                        | 12 ++---
 sys/powerpc/booke/pmap.c                           |  4 +-
 sys/powerpc/booke/pmap_32.c                        | 10 ++--
 sys/powerpc/booke/pmap_64.c                        |  6 +--
 sys/powerpc/include/mmuvar.h                       |  4 +-
 sys/powerpc/powerpc/busdma_machdep.c               | 26 ++++-----
 sys/powerpc/powerpc/pmap_dispatch.c                |  4 +-
 sys/riscv/riscv/busdma_bounce.c                    | 60 ++++++++++-----------
 sys/riscv/riscv/pmap.c                             |  6 +--
 sys/vm/pmap.h                                      |  4 +-
 sys/x86/x86/busdma_bounce.c                        | 30 +++++------
 24 files changed, 197 insertions(+), 195 deletions(-)

diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 497c85c3f0c2..361f3d619122 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -10573,14 +10573,14 @@ pmap_unmap_io_transient(vm_page_t page[], vm_offset_t vaddr[], int count,
 	}
 }
 
-vm_offset_t
+void *
 pmap_quick_enter_page(vm_page_t m)
 {
 	vm_paddr_t paddr;
 
 	paddr = VM_PAGE_TO_PHYS(m);
 	if (paddr < dmaplimit)
-		return (PHYS_TO_DMAP(paddr));
+		return ((void *)PHYS_TO_DMAP(paddr));
 	mtx_lock_spin(&qframe_mtx);
 	KASSERT(*vtopte(qframe) == 0, ("qframe busy"));
 
@@ -10592,14 +10592,14 @@ pmap_quick_enter_page(vm_page_t m)
 
 	pte_store(vtopte(qframe), paddr | X86_PG_RW | X86_PG_V | X86_PG_A |
 	    X86_PG_M | pmap_cache_bits(kernel_pmap, m->md.pat_mode, false));
-	return (qframe);
+	return ((void *)qframe);
 }
 
 void
-pmap_quick_remove_page(vm_offset_t addr)
+pmap_quick_remove_page(void *addr)
 {
 
-	if (addr != qframe)
+	if ((vm_offset_t)addr != qframe)
 		return;
 	pte_store(vtopte(qframe), 0);
 	mtx_unlock_spin(&qframe_mtx);
diff --git a/sys/arm/arm/busdma_machdep.c b/sys/arm/arm/busdma_machdep.c
index 99a72c9e79d0..3c65cb8ebbf4 100644
--- a/sys/arm/arm/busdma_machdep.c
+++ b/sys/arm/arm/busdma_machdep.c
@@ -92,7 +92,7 @@ struct bus_dma_tag {
 };
 
 struct sync_list {
-	vm_offset_t	vaddr;		/* kva of client data */
+	char		*vaddr;		/* kva of client data */
 	bus_addr_t	paddr;		/* physical address */
 	vm_page_t	pages;		/* starting page of client data */
 	bus_size_t	datacount;	/* client data count */
@@ -897,7 +897,7 @@ _bus_dmamap_load_phys(bus_dma_tag_t dmat, bus_dmamap_t map, vm_paddr_t buf,
 				if (++map->sync_count > dmat->nsegments)
 					break;
 				sl++;
-				sl->vaddr = 0;
+				sl->vaddr = NULL;
 				sl->paddr = curaddr;
 				sl->datacount = sgsize;
 				sl->pages = PHYS_TO_VM_PAGE(curaddr);
@@ -946,7 +946,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
 	bus_size_t sgsize;
 	bus_addr_t curaddr;
 	bus_addr_t sl_pend = 0;
-	vm_offset_t kvaddr, vaddr, sl_vend = 0;
+	char *kvaddr, *vaddr, *sl_vend = NULL;
 	struct sync_list *sl;
 	int error;
 
@@ -981,18 +981,18 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
 	}
 
 	sl = map->slist + map->sync_count - 1;
-	vaddr = (vm_offset_t)buf;
+	vaddr = buf;
 
 	while (buflen > 0) {
 		/*
 		 * Get the physical address for this segment.
 		 */
 		if (__predict_true(pmap == kernel_pmap)) {
-			curaddr = pmap_kextract(vaddr);
+			curaddr = pmap_kextract((vm_offset_t)vaddr);
 			kvaddr = vaddr;
 		} else {
-			curaddr = pmap_extract(pmap, vaddr);
-			kvaddr = 0;
+			curaddr = pmap_extract(pmap, (vm_offset_t)vaddr);
+			kvaddr = NULL;
 		}
 
 		/*
@@ -1002,12 +1002,12 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
 
 		if (map->pagesneeded != 0 && must_bounce(dmat, map, curaddr,
 		    sgsize)) {
-			curaddr = add_bounce_page(dmat, map, kvaddr, curaddr,
+			curaddr = add_bounce_page(dmat, map, (vm_offset_t)kvaddr, curaddr,
 			    sgsize);
 		} else if ((dmat->flags & BUS_DMA_COHERENT) == 0) {
 			if (map->sync_count > 0) {
 				sl_pend = sl->paddr + sl->datacount;
-				sl_vend = sl->vaddr + sl->datacount;
+				sl_vend = (char *)sl->vaddr + sl->datacount;
 			}
 
 			if (map->sync_count == 0 ||
@@ -1018,7 +1018,7 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
 				sl++;
 				sl->vaddr = kvaddr;
 				sl->paddr = curaddr;
-				if (kvaddr != 0) {
+				if (kvaddr != NULL) {
 					sl->pages = NULL;
 				} else {
 					sl->pages = PHYS_TO_VM_PAGE(curaddr);
@@ -1118,7 +1118,7 @@ dma_dcache_sync(struct sync_list *sl, bus_dmasync_op_t op)
 	uint32_t len, offset;
 	vm_page_t m;
 	vm_paddr_t pa;
-	vm_offset_t va, tempva;
+	char *va, *tempva;
 	bus_size_t size;
 
 	offset = sl->paddr & PAGE_MASK;
@@ -1127,11 +1127,11 @@ dma_dcache_sync(struct sync_list *sl, bus_dmasync_op_t op)
 	pa = sl->paddr;
 
 	for ( ; size != 0; size -= len, pa += len, offset = 0, ++m) {
-		tempva = 0;
-		if (sl->vaddr == 0) {
+		tempva = NULL;
+		if (sl->vaddr == NULL) {
 			len = min(PAGE_SIZE - offset, size);
 			tempva = pmap_quick_enter_page(m);
-			va = tempva | offset;
+			va = tempva + offset;
 			KASSERT(pa == (VM_PAGE_TO_PHYS(m) | offset),
 			    ("unexpected vm_page_t phys: 0x%08x != 0x%08x",
 			    VM_PAGE_TO_PHYS(m) | offset, pa));
@@ -1143,7 +1143,7 @@ dma_dcache_sync(struct sync_list *sl, bus_dmasync_op_t op)
 		switch (op) {
 		case BUS_DMASYNC_PREWRITE:
 		case BUS_DMASYNC_PREWRITE | BUS_DMASYNC_PREREAD:
-			dcache_wb_poc(va, pa, len);
+			dcache_wb_poc((vm_offset_t)va, pa, len);
 			break;
 		case BUS_DMASYNC_PREREAD:
 			/*
@@ -1156,18 +1156,18 @@ dma_dcache_sync(struct sync_list *sl, bus_dmasync_op_t op)
 			 * misalignment.  Buffers which are not mbufs bounce if
 			 * they are not aligned to a cacheline.
 			 */
-			dma_preread_safe(va, pa, len);
+			dma_preread_safe((vm_offset_t)va, pa, len);
 			break;
 		case BUS_DMASYNC_POSTREAD:
 		case BUS_DMASYNC_POSTREAD | BUS_DMASYNC_POSTWRITE:
-			dcache_inv_poc(va, pa, len);
+			dcache_inv_poc((vm_offset_t)va, pa, len);
 			break;
 		default:
 			panic("unsupported combination of sync operations: "
                               "0x%08x\n", op);
 		}
 
-		if (tempva != 0)
+		if (tempva != NULL)
 			pmap_quick_remove_page(tempva);
 	}
 }
@@ -1177,7 +1177,7 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
 {
 	struct bounce_page *bpage;
 	struct sync_list *sl, *end;
-	vm_offset_t datavaddr, tempvaddr;
+	char *datavaddr, *tempvaddr;
 
 	if (op == BUS_DMASYNC_POSTWRITE)
 		return;
@@ -1198,16 +1198,16 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
 		 */
 		if (op & BUS_DMASYNC_PREWRITE) {
 			while (bpage != NULL) {
-				tempvaddr = 0;
-				datavaddr = bpage->datavaddr;
-				if (datavaddr == 0) {
+				tempvaddr = NULL;
+				datavaddr = (void *)bpage->datavaddr;
+				if (datavaddr == NULL) {
 					tempvaddr = pmap_quick_enter_page(
 					    bpage->datapage);
-					datavaddr = tempvaddr | bpage->dataoffs;
+					datavaddr = tempvaddr + bpage->dataoffs;
 				}
-				bcopy((void *)datavaddr, (void *)bpage->vaddr,
+				bcopy(datavaddr, (void *)bpage->vaddr,
 				    bpage->datacount);
-				if (tempvaddr != 0)
+				if (tempvaddr != NULL)
 					pmap_quick_remove_page(tempvaddr);
 				if ((dmat->flags & BUS_DMA_COHERENT) == 0)
 					dcache_wb_poc(bpage->vaddr,
@@ -1252,16 +1252,16 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
 				if ((dmat->flags & BUS_DMA_COHERENT) == 0)
 					dcache_inv_poc(bpage->vaddr,
 					    bpage->busaddr, bpage->datacount);
-				tempvaddr = 0;
-				datavaddr = bpage->datavaddr;
-				if (datavaddr == 0) {
+				tempvaddr = NULL;
+				datavaddr = (void *)bpage->datavaddr;
+				if (datavaddr == NULL) {
 					tempvaddr = pmap_quick_enter_page(
 					    bpage->datapage);
-					datavaddr = tempvaddr | bpage->dataoffs;
+					datavaddr = tempvaddr + bpage->dataoffs;
 				}
-				bcopy((void *)bpage->vaddr, (void *)datavaddr,
+				bcopy((void *)bpage->vaddr, datavaddr,
 				    bpage->datacount);
-				if (tempvaddr != 0)
+				if (tempvaddr != NULL)
 					pmap_quick_remove_page(tempvaddr);
 				bpage = STAILQ_NEXT(bpage, links);
 			}
diff --git a/sys/arm/arm/pmap-v6.c b/sys/arm/arm/pmap-v6.c
index 00f9766e9a54..a87e9ead64cd 100644
--- a/sys/arm/arm/pmap-v6.c
+++ b/sys/arm/arm/pmap-v6.c
@@ -6006,7 +6006,7 @@ pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[],
 	mtx_unlock(&pc->pc_cmap_lock);
 }
 
-vm_offset_t
+void *
 pmap_quick_enter_page(vm_page_t m)
 {
 	struct pcpu *pc;
@@ -6020,11 +6020,11 @@ pmap_quick_enter_page(vm_page_t m)
 
 	pte2_store(pte2p, PTE2_KERN_NG(VM_PAGE_TO_PHYS(m), PTE2_AP_KRW,
 	    vm_page_pte2_attr(m)));
-	return (pc->pc_qmap_addr);
+	return ((void *)pc->pc_qmap_addr);
 }
 
 void
-pmap_quick_remove_page(vm_offset_t addr)
+pmap_quick_remove_page(void *addr)
 {
 	struct pcpu *pc;
 	pt2_entry_t *pte2p;
@@ -6032,7 +6032,8 @@ pmap_quick_remove_page(vm_offset_t addr)
 	pc = get_pcpu();
 	pte2p = pc->pc_qmap_pte2p;
 
-	KASSERT(addr == pc->pc_qmap_addr, ("%s: invalid address", __func__));
+	KASSERT(addr == (void *)pc->pc_qmap_addr,
+	    ("%s: invalid address", __func__));
 	KASSERT(pte2_load(pte2p) != 0, ("%s: PTE2 not in use", __func__));
 
 	pte2_clear(pte2p);
diff --git a/sys/arm64/arm64/busdma_bounce.c b/sys/arm64/arm64/busdma_bounce.c
index abfd5c195857..ad46e26e406f 100644
--- a/sys/arm64/arm64/busdma_bounce.c
+++ b/sys/arm64/arm64/busdma_bounce.c
@@ -86,7 +86,7 @@ static SYSCTL_NODE(_hw, OID_AUTO, busdma, CTLFLAG_RD | CTLFLAG_MPSAFE, 0,
     "Busdma parameters");
 
 struct sync_list {
-	vm_offset_t	vaddr;		/* kva of client data */
+	char		*vaddr;		/* kva of client data */
 	bus_addr_t	paddr;		/* physical address */
 	vm_page_t	pages;		/* starting page of client data */
 	bus_size_t	datacount;	/* client data count */
@@ -770,7 +770,7 @@ bounce_bus_dmamap_load_phys(bus_dma_tag_t dmat, bus_dmamap_t map,
 				if (++map->sync_count > dmat->common.nsegments)
 					break;
 				sl++;
-				sl->vaddr = 0;
+				sl->vaddr = NULL;
 				sl->paddr = curaddr;
 				sl->pages = PHYS_TO_VM_PAGE(curaddr);
 				KASSERT(sl->pages != NULL,
@@ -809,7 +809,7 @@ bounce_bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
 	struct sync_list *sl;
 	bus_size_t sgsize;
 	bus_addr_t curaddr, sl_pend;
-	vm_offset_t kvaddr, vaddr, sl_vend;
+	char *kvaddr, *vaddr, *sl_vend;
 	int error;
 
 	KASSERT((map->flags & DMAMAP_FROM_DMAMEM) != 0 ||
@@ -838,20 +838,20 @@ bounce_bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
 	 * load loop.
 	 */
 	sl = map->slist + map->sync_count - 1;
-	vaddr = (vm_offset_t)buf;
+	vaddr = buf;
 	sl_pend = 0;
-	sl_vend = 0;
+	sl_vend = NULL;
 
 	while (buflen > 0) {
 		/*
 		 * Get the physical address for this segment.
 		 */
 		if (__predict_true(pmap == kernel_pmap)) {
-			curaddr = pmap_kextract(vaddr);
+			curaddr = pmap_kextract((vm_offset_t)vaddr);
 			kvaddr = vaddr;
 		} else {
-			curaddr = pmap_extract(pmap, vaddr);
-			kvaddr = 0;
+			curaddr = pmap_extract(pmap, (vm_offset_t)vaddr);
+			kvaddr = NULL;
 		}
 
 		/*
@@ -868,7 +868,7 @@ bounce_bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
 			KASSERT(dmat->common.alignment <= PAGE_SIZE,
 			    ("bounced buffer cannot have alignment bigger "
 			    "than PAGE_SIZE: %lu", dmat->common.alignment));
-			curaddr = add_bounce_page(dmat, map, kvaddr, curaddr,
+			curaddr = add_bounce_page(dmat, map, (vm_offset_t)kvaddr, curaddr,
 			    sgsize);
 		} else if ((map->flags & DMAMAP_COHERENT) == 0) {
 			if (map->sync_count > 0) {
@@ -884,7 +884,7 @@ bounce_bus_dmamap_load_buffer(bus_dma_tag_t dmat, bus_dmamap_t map, void *buf,
 				sl++;
 				sl->vaddr = kvaddr;
 				sl->paddr = curaddr;
-				if (kvaddr != 0) {
+				if (kvaddr != NULL) {
 					sl->pages = NULL;
 				} else {
 					sl->pages = PHYS_TO_VM_PAGE(curaddr);
@@ -967,7 +967,7 @@ dma_dcache_sync(struct sync_list *sl, bus_dmasync_op_t op)
 	uint32_t len, offset;
 	vm_page_t m;
 	vm_paddr_t pa;
-	vm_offset_t va, tempva;
+	char *va, *tempva;
 	bus_size_t size;
 
 	offset = sl->paddr & PAGE_MASK;
@@ -976,11 +976,11 @@ dma_dcache_sync(struct sync_list *sl, bus_dmasync_op_t op)
 	pa = sl->paddr;
 
 	for ( ; size != 0; size -= len, pa += len, offset = 0, ++m) {
-		tempva = 0;
-		if (sl->vaddr == 0) {
+		tempva = NULL;
+		if (sl->vaddr == NULL) {
 			len = min(PAGE_SIZE - offset, size);
 			tempva = pmap_quick_enter_page(m);
-			va = tempva | offset;
+			va = tempva + offset;
 			KASSERT(pa == (VM_PAGE_TO_PHYS(m) | offset),
 			    ("unexpected vm_page_t phys: 0x%16lx != 0x%16lx",
 			    VM_PAGE_TO_PHYS(m) | offset, pa));
@@ -1016,7 +1016,7 @@ dma_dcache_sync(struct sync_list *sl, bus_dmasync_op_t op)
                               "0x%08x\n", op);
 		}
 
-		if (tempva != 0)
+		if (tempva != NULL)
 			pmap_quick_remove_page(tempva);
 	}
 }
@@ -1027,7 +1027,7 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map,
 {
 	struct bounce_page *bpage;
 	struct sync_list *sl, *end;
-	vm_offset_t datavaddr, tempvaddr;
+	char *datavaddr, *tempvaddr;
 
 	if (op == BUS_DMASYNC_POSTWRITE)
 		return;
@@ -1046,17 +1046,17 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map,
 
 		if ((op & BUS_DMASYNC_PREWRITE) != 0) {
 			while (bpage != NULL) {
-				tempvaddr = 0;
-				datavaddr = bpage->datavaddr;
-				if (datavaddr == 0) {
+				tempvaddr = NULL;
+				datavaddr = (void *)bpage->datavaddr;
+				if (datavaddr == NULL) {
 					tempvaddr = pmap_quick_enter_page(
 					    bpage->datapage);
-					datavaddr = tempvaddr | bpage->dataoffs;
+					datavaddr = tempvaddr + bpage->dataoffs;
 				}
 
-				bcopy((void *)datavaddr,
+				bcopy(datavaddr,
 				    (void *)bpage->vaddr, bpage->datacount);
-				if (tempvaddr != 0)
+				if (tempvaddr != NULL)
 					pmap_quick_remove_page(tempvaddr);
 				if ((map->flags & DMAMAP_COHERENT) == 0)
 					cpu_dcache_wb_range((void *)bpage->vaddr,
@@ -1078,18 +1078,18 @@ bounce_bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map,
 				if ((map->flags & DMAMAP_COHERENT) == 0)
 					cpu_dcache_inv_range((void *)bpage->vaddr,
 					    bpage->datacount);
-				tempvaddr = 0;
-				datavaddr = bpage->datavaddr;
-				if (datavaddr == 0) {
+				tempvaddr = NULL;
+				datavaddr = (void *)bpage->datavaddr;
+				if (datavaddr == NULL) {
 					tempvaddr = pmap_quick_enter_page(
 					    bpage->datapage);
-					datavaddr = tempvaddr | bpage->dataoffs;
+					datavaddr = tempvaddr + bpage->dataoffs;
 				}
 
 				bcopy((void *)bpage->vaddr,
-				    (void *)datavaddr, bpage->datacount);
+				    datavaddr, bpage->datacount);
 
-				if (tempvaddr != 0)
+				if (tempvaddr != NULL)
 					pmap_quick_remove_page(tempvaddr);
 				bpage = STAILQ_NEXT(bpage, links);
 			}
diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c
index 556dda855c0b..cc43f4d21278 100644
--- a/sys/arm64/arm64/pmap.c
+++ b/sys/arm64/arm64/pmap.c
@@ -6950,15 +6950,15 @@ pmap_copy_pages(vm_page_t ma[], vm_offset_t a_offset, vm_page_t mb[],
 	}
 }
 
-vm_offset_t
+void *
 pmap_quick_enter_page(vm_page_t m)
 {
 
-	return (PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)));
+	return ((void *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)));
 }
 
 void
-pmap_quick_remove_page(vm_offset_t addr)
+pmap_quick_remove_page(void *addr)
 {
 }
 
diff --git a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c b/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c
index 57e5036ca363..383dff43047e 100644
--- a/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c
+++ b/sys/contrib/vchiq/interface/vchiq_arm/vchiq_2835_arm.c
@@ -137,12 +137,12 @@ invalidate_cachelines_in_range_of_ppage(
 )
 {
 	if(offset + count > PAGE_SIZE){ return EINVAL; }
-        uint8_t *dst = (uint8_t*)pmap_quick_enter_page(p);
+        uint8_t *dst = pmap_quick_enter_page(p);
         if (!dst){
                 return ENOMEM;
 	}
-	cpu_dcache_inv_range((void *)((vm_offset_t)dst + offset), count);
-	pmap_quick_remove_page((vm_offset_t)dst);
+	cpu_dcache_inv_range(dst + offset, count);
+	pmap_quick_remove_page(dst);
 	return 0;
 }
 
@@ -181,13 +181,13 @@ copyout_page(vm_page_t p, size_t offset, void *kaddr, size_t size)
 {
         uint8_t *dst;
 
-        dst = (uint8_t*)pmap_quick_enter_page(p);
+        dst = pmap_quick_enter_page(p);
         if (!dst)
                 return ENOMEM;
 
         memcpy(dst + offset, kaddr, size);
 
-        pmap_quick_remove_page((vm_offset_t)dst);
+        pmap_quick_remove_page(dst);
 
         return 0;
 }
diff --git a/sys/dev/ata/ata-lowlevel.c b/sys/dev/ata/ata-lowlevel.c
index ac764eaf7d15..c5706d200c1c 100644
--- a/sys/dev/ata/ata-lowlevel.c
+++ b/sys/dev/ata/ata-lowlevel.c
@@ -812,13 +812,13 @@ ata_pio_read(struct ata_request *request, int length)
 {
 	struct ata_channel *ch = device_get_softc(request->parent);
 	struct bio *bio;
-	uint8_t *addr;
-	vm_offset_t page;
+	uint8_t *addr, *page;
 	int todo, done, off, moff, resid, size, i;
 	uint8_t buf[2] __aligned(2);
 
 	todo = min(request->transfersize, length);
-	page = done = resid = 0;
+	page = NULL;
+	done = resid = 0;
 	while (done < todo) {
 		size = todo - done;
 
@@ -837,7 +837,7 @@ ata_pio_read(struct ata_request *request, int length)
 				    bio->bio_ma[moff / PAGE_SIZE]);
 				moff %= PAGE_SIZE;
 				size = min(size, PAGE_SIZE - moff);
-				addr = (void *)(page + moff);
+				addr = page + moff;
 			}
 		} else
 			panic("ata_pio_read: Unsupported CAM data type %x\n",
@@ -877,9 +877,9 @@ ata_pio_read(struct ata_request *request, int length)
 		} else
 			ATA_IDX_INSL_STRM(ch, ATA_DATA, (void*)addr, size / 4);
 
-		if (page) {
+		if (page != NULL) {
 			pmap_quick_remove_page(page);
-			page = 0;
+			page = NULL;
 		}
 		done += size;
 	}
@@ -898,13 +898,13 @@ ata_pio_write(struct ata_request *request, int length)
 {
 	struct ata_channel *ch = device_get_softc(request->parent);
 	struct bio *bio;
-	uint8_t *addr;
-	vm_offset_t page;
+	uint8_t *addr, *page;
 	int todo, done, off, moff, resid, size, i;
 	uint8_t buf[2] __aligned(2);
 
 	todo = min(request->transfersize, length);
-	page = done = resid = 0;
+	page = NULL;
+	done = resid = 0;
 	while (done < todo) {
 		size = todo - done;
 
@@ -923,7 +923,7 @@ ata_pio_write(struct ata_request *request, int length)
 				    bio->bio_ma[moff / PAGE_SIZE]);
 				moff %= PAGE_SIZE;
 				size = min(size, PAGE_SIZE - moff);
-				addr = (void *)(page + moff);
+				addr = page + moff;
 			}
 		} else
 			panic("ata_pio_write: Unsupported CAM data type %x\n",
@@ -962,9 +962,9 @@ ata_pio_write(struct ata_request *request, int length)
 			ATA_IDX_OUTSL_STRM(ch, ATA_DATA,
 			    (void*)addr, size / sizeof(int32_t));
 
-		if (page) {
+		if (page != NULL) {
 			pmap_quick_remove_page(page);
-			page = 0;
+			page = NULL;
 		}
 		done += size;
 	}
diff --git a/sys/dev/xen/gntdev/gntdev.c b/sys/dev/xen/gntdev/gntdev.c
index e3bc1ecf35ab..7824c283d6ba 100644
--- a/sys/dev/xen/gntdev/gntdev.c
+++ b/sys/dev/xen/gntdev/gntdev.c
@@ -830,9 +830,9 @@ notify(struct notify_data *notify, vm_page_t page)
 		uint64_t offset;
 
 		offset = notify->index & PAGE_MASK;
-		mem = (uint8_t *)pmap_quick_enter_page(page);
+		mem = pmap_quick_enter_page(page);
 		mem[offset] = 0;
-		pmap_quick_remove_page((vm_offset_t)mem);
+		pmap_quick_remove_page(mem);
 	}
 	if (notify->action & UNMAP_NOTIFY_SEND_EVENT) {
 		xen_intr_signal(notify->notify_evtchn_handle);
diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c
index fd5ac272a441..dc31d3702531 100644
--- a/sys/i386/i386/pmap.c
+++ b/sys/i386/i386/pmap.c
@@ -5928,7 +5928,7 @@ __CONCAT(PMTYPE, align_superpage)(vm_object_t object, vm_ooffset_t offset,
 		*addr = ((*addr + PDRMASK) & ~PDRMASK) + superpage_offset;
 }
 
-static vm_offset_t
+static void *
 __CONCAT(PMTYPE, quick_enter_page)(vm_page_t m)
 {
 	vm_offset_t qaddr;
@@ -5944,11 +5944,11 @@ __CONCAT(PMTYPE, quick_enter_page)(vm_page_t m)
 	    pmap_cache_bits(kernel_pmap, pmap_page_get_memattr(m), false);
 	invlpg(qaddr);
 
-	return (qaddr);
+	return ((void *)qaddr);
 }
 
 static void
-__CONCAT(PMTYPE, quick_remove_page)(vm_offset_t addr)
+__CONCAT(PMTYPE, quick_remove_page)(void *addr)
 {
 	vm_offset_t qaddr;
 	pt_entry_t *pte;
@@ -5957,7 +5957,8 @@ __CONCAT(PMTYPE, quick_remove_page)(vm_offset_t addr)
 	pte = vtopte(qaddr);
 
 	KASSERT(*pte != 0, ("pmap_quick_remove_page: PTE not in use"));
-	KASSERT(addr == qaddr, ("pmap_quick_remove_page: invalid address"));
+	KASSERT(addr == (void *)qaddr,
+	    ("pmap_quick_remove_page: invalid address"));
 
 	*pte = 0;
 	critical_exit();
diff --git a/sys/i386/i386/pmap_base.c b/sys/i386/i386/pmap_base.c
index cdbfd688f110..ed084947cece 100644
--- a/sys/i386/i386/pmap_base.c
+++ b/sys/i386/i386/pmap_base.c
@@ -432,7 +432,7 @@ pmap_align_superpage(vm_object_t object, vm_ooffset_t offset,
 	    addr, size));
 }
 
-vm_offset_t
+void *
 pmap_quick_enter_page(vm_page_t m)
 {
 
@@ -440,7 +440,7 @@ pmap_quick_enter_page(vm_page_t m)
 }
 
 void
-pmap_quick_remove_page(vm_offset_t addr)
+pmap_quick_remove_page(void *addr)
 {
 
 	return (pmap_methods_ptr->pm_quick_remove_page(addr));
diff --git a/sys/i386/include/pmap_base.h b/sys/i386/include/pmap_base.h
index 20f814195281..9771361d674e 100644
--- a/sys/i386/include/pmap_base.h
+++ b/sys/i386/include/pmap_base.h
@@ -40,8 +40,8 @@ struct pmap_methods {
 	void (*pm_remap_lowptdi)(bool);
 	void (*pm_align_superpage)(vm_object_t object, vm_ooffset_t offset,
 	    vm_offset_t *addr, vm_size_t size);
-	vm_offset_t (*pm_quick_enter_page)(vm_page_t m);
-	void (*pm_quick_remove_page)(vm_offset_t addr);
+	void *(*pm_quick_enter_page)(vm_page_t m);
+	void (*pm_quick_remove_page)(void *addr);
 	void *(*pm_trm_alloc)(size_t size, int flags);
 	void (*pm_trm_free)(void *addr, size_t size);
 	vm_offset_t (*pm_get_map_low)(void);
diff --git a/sys/powerpc/aim/mmu_oea.c b/sys/powerpc/aim/mmu_oea.c
index adf5fd10e3de..2e99b7deeac7 100644
--- a/sys/powerpc/aim/mmu_oea.c
+++ b/sys/powerpc/aim/mmu_oea.c
@@ -323,8 +323,8 @@ int moea_dev_direct_mapped(vm_paddr_t, vm_size_t);
 static void moea_sync_icache(pmap_t, vm_offset_t, vm_size_t);
 void moea_dumpsys_map(vm_paddr_t pa, size_t sz, void **va);
 void moea_scan_init(void);
-vm_offset_t moea_quick_enter_page(vm_page_t m);
-void moea_quick_remove_page(vm_offset_t addr);
+void *moea_quick_enter_page(vm_page_t m);
+void moea_quick_remove_page(void *addr);
 bool moea_page_is_mapped(vm_page_t m);
 bool moea_ps_enabled(pmap_t pmap);
 static int moea_map_user_ptr(pmap_t pm,
@@ -1104,15 +1104,15 @@ moea_zero_page_area(vm_page_t m, int off, int size)
 	bzero(va, size);
 }
 
-vm_offset_t
+void *
 moea_quick_enter_page(vm_page_t m)
 {
 
-	return (VM_PAGE_TO_PHYS(m));
+	return ((void *)VM_PAGE_TO_PHYS(m));
 }
 
 void
-moea_quick_remove_page(vm_offset_t addr)
+moea_quick_remove_page(void *addr)
 {
 }
 
diff --git a/sys/powerpc/aim/mmu_oea64.c b/sys/powerpc/aim/mmu_oea64.c
index 247bd30e6bd4..23172dbd807b 100644
--- a/sys/powerpc/aim/mmu_oea64.c
+++ b/sys/powerpc/aim/mmu_oea64.c
@@ -404,9 +404,9 @@ static void moea64_sync_icache(pmap_t, vm_offset_t, vm_size_t);
 void moea64_dumpsys_map(vm_paddr_t pa, size_t sz,
     void **va);
 void moea64_scan_init(void);
-vm_offset_t moea64_quick_enter_page(vm_page_t m);
-vm_offset_t moea64_quick_enter_page_dmap(vm_page_t m);
-void moea64_quick_remove_page(vm_offset_t addr);
+void *moea64_quick_enter_page(vm_page_t m);
+void *moea64_quick_enter_page_dmap(vm_page_t m);
+void moea64_quick_remove_page(void *addr);
 bool moea64_page_is_mapped(vm_page_t m);
 static int moea64_map_user_ptr(pmap_t pm,
     volatile const void *uaddr, void **kaddr, size_t ulen, size_t *klen);
@@ -1554,7 +1554,7 @@ moea64_zero_page_dmap(vm_page_t m)
 	bzero((void *)va, PAGE_SIZE);
 }
 
-vm_offset_t
+void *
 moea64_quick_enter_page(vm_page_t m)
 {
 	struct pvo_entry *pvo;
@@ -1577,22 +1577,22 @@ moea64_quick_enter_page(vm_page_t m)
 	moea64_pte_replace(pvo, MOEA64_PTE_INVALIDATE);
 	isync();
 
-	return (PCPU_GET(qmap_addr));
+	return ((void *)PCPU_GET(qmap_addr));
 }
 
-vm_offset_t
+void *
 moea64_quick_enter_page_dmap(vm_page_t m)
 {
 
-	return (PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)));
+	return ((void *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)));
 }
 
 void
-moea64_quick_remove_page(vm_offset_t addr)
+moea64_quick_remove_page(void *addr)
 {
 
 	mtx_assert(PCPU_PTR(aim.qmap_lock), MA_OWNED);
-	KASSERT(PCPU_GET(qmap_addr) == addr,
+	KASSERT((void *)PCPU_GET(qmap_addr) == addr,
 	    ("moea64_quick_remove_page: invalid address"));
 	mtx_unlock(PCPU_PTR(aim.qmap_lock));
 	sched_unpin();	
diff --git a/sys/powerpc/aim/mmu_radix.c b/sys/powerpc/aim/mmu_radix.c
index 1fc8a23269e5..eaf9b39dde8f 100644
--- a/sys/powerpc/aim/mmu_radix.c
+++ b/sys/powerpc/aim/mmu_radix.c
@@ -454,8 +454,8 @@ void mmu_radix_protect(pmap_t, vm_offset_t, vm_offset_t, vm_prot_t);
 bool mmu_radix_ps_enabled(pmap_t);
 void mmu_radix_qenter(vm_offset_t, vm_page_t *, int);
 void mmu_radix_qremove(vm_offset_t, int);
-vm_offset_t mmu_radix_quick_enter_page(vm_page_t);
-void mmu_radix_quick_remove_page(vm_offset_t);
+void *mmu_radix_quick_enter_page(vm_page_t);
+void mmu_radix_quick_remove_page(void *);
 int mmu_radix_ts_referenced(vm_page_t);
 void mmu_radix_release(pmap_t);
 void mmu_radix_remove(pmap_t, vm_offset_t, vm_offset_t);
@@ -6178,21 +6178,21 @@ mmu_radix_dumpsys_map(vm_paddr_t pa, size_t sz,
 	UNIMPLEMENTED();
 }
 
-vm_offset_t
+void *
 mmu_radix_quick_enter_page(vm_page_t m)
 {
 	vm_paddr_t paddr;
 
 	CTR2(KTR_PMAP, "%s(%p)", __func__, m);
 	paddr = VM_PAGE_TO_PHYS(m);
-	return (PHYS_TO_DMAP(paddr));
+	return ((void *)PHYS_TO_DMAP(paddr));
 }
 
 void
-mmu_radix_quick_remove_page(vm_offset_t addr __unused)
+mmu_radix_quick_remove_page(void *addr __unused)
 {
 	/* no work to do here */
-	CTR2(KTR_PMAP, "%s(%#x)", __func__, addr);
+	CTR2(KTR_PMAP, "%s(%p)", __func__, addr);
 }
 
 static void
diff --git a/sys/powerpc/booke/pmap.c b/sys/powerpc/booke/pmap.c
index a76ef6a089fd..fcc98df25b38 100644
--- a/sys/powerpc/booke/pmap.c
+++ b/sys/powerpc/booke/pmap.c
@@ -347,8 +347,8 @@ static void		mmu_booke_dumpsys_map(vm_paddr_t pa, size_t,
 static void		mmu_booke_dumpsys_unmap(vm_paddr_t pa, size_t,
     void *);
 static void		mmu_booke_scan_init(void);
-static vm_offset_t	mmu_booke_quick_enter_page(vm_page_t m);
-static void		mmu_booke_quick_remove_page(vm_offset_t addr);
+static void		*mmu_booke_quick_enter_page(vm_page_t m);
+static void		mmu_booke_quick_remove_page(void *addr);
 static int		mmu_booke_change_attr(vm_offset_t addr,
     vm_size_t sz, vm_memattr_t mode);
 static int		mmu_booke_decode_kernel_ptr(vm_offset_t addr,
diff --git a/sys/powerpc/booke/pmap_32.c b/sys/powerpc/booke/pmap_32.c
index 5186a8852ed3..b4753a32b2af 100644
--- a/sys/powerpc/booke/pmap_32.c
+++ b/sys/powerpc/booke/pmap_32.c
@@ -871,7 +871,7 @@ mmu_booke_copy_pages(vm_page_t *ma, vm_offset_t a_offset,
 	mtx_unlock(&copy_page_mutex);
 }
 
-static vm_offset_t
+static void *
 mmu_booke_quick_enter_page(vm_page_t m)
 {
 	vm_paddr_t paddr;
@@ -906,17 +906,17 @@ mmu_booke_quick_enter_page(vm_page_t m)
 	if ((flags & (PTE_I | PTE_G)) == 0)
 		__syncicache((void *)qaddr, PAGE_SIZE);
 
-	return (qaddr);
+	return ((void *)qaddr);
 }
 
 static void
-mmu_booke_quick_remove_page(vm_offset_t addr)
+mmu_booke_quick_remove_page(void *addr)
 {
 	pte_t *pte;
 
-	pte = pte_find(kernel_pmap, addr);
+	pte = pte_find(kernel_pmap, (vm_offset_t)addr);
 
-	KASSERT(PCPU_GET(qmap_addr) == addr,
+	KASSERT(PCPU_GET(qmap_addr) == (vm_offset_t)addr,
 	    ("mmu_booke_quick_remove_page: invalid address"));
 	KASSERT(*pte != 0,
 	    ("mmu_booke_quick_remove_page: PTE not in use"));
diff --git a/sys/powerpc/booke/pmap_64.c b/sys/powerpc/booke/pmap_64.c
index 5a414b9026c8..06c7c8cf76be 100644
--- a/sys/powerpc/booke/pmap_64.c
+++ b/sys/powerpc/booke/pmap_64.c
@@ -729,14 +729,14 @@ mmu_booke_copy_pages(vm_page_t *ma, vm_offset_t a_offset,
 	}
 }
 
-static vm_offset_t
+static void *
 mmu_booke_quick_enter_page(vm_page_t m)
 {
-	return (PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)));
+	return ((void *)PHYS_TO_DMAP(VM_PAGE_TO_PHYS(m)));
 }
 
 static void
-mmu_booke_quick_remove_page(vm_offset_t addr)
+mmu_booke_quick_remove_page(void *addr)
 {
 }
 
diff --git a/sys/powerpc/include/mmuvar.h b/sys/powerpc/include/mmuvar.h
index 9cf7a682ddd5..d1e6f8f4b6d9 100644
--- a/sys/powerpc/include/mmuvar.h
+++ b/sys/powerpc/include/mmuvar.h
@@ -97,8 +97,8 @@ typedef	void	(*pmap_dumpsys_pa_init_t)(void);
 typedef	size_t	(*pmap_dumpsys_scan_pmap_t)(struct bitset *dump_bitset);
 typedef	void	*(*pmap_dumpsys_dump_pmap_init_t)(unsigned);
 typedef	void	*(*pmap_dumpsys_dump_pmap_t)(void *, void *, u_long *);
-typedef	vm_offset_t	(*pmap_quick_enter_page_t)(vm_page_t);
-typedef	void	(*pmap_quick_remove_page_t)(vm_offset_t);
+typedef	void	*(*pmap_quick_enter_page_t)(vm_page_t);
+typedef	void	(*pmap_quick_remove_page_t)(void *);
 typedef	bool	(*pmap_ps_enabled_t)(pmap_t);
 typedef	void	(*pmap_tlbie_all_t)(void);
 typedef void	(*pmap_installer_t)(void);
diff --git a/sys/powerpc/powerpc/busdma_machdep.c b/sys/powerpc/powerpc/busdma_machdep.c
index 65a07c7ebc39..56feffde8b37 100644
--- a/sys/powerpc/powerpc/busdma_machdep.c
+++ b/sys/powerpc/powerpc/busdma_machdep.c
@@ -719,7 +719,7 @@ void
 bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
 {
 	struct bounce_page *bpage;
-	vm_offset_t datavaddr, tempvaddr;
+	char *datavaddr, *tempvaddr;
 
 	if ((bpage = STAILQ_FIRST(&map->bpages)) != NULL) {
 		/*
@@ -732,19 +732,19 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
 
 		if (op & BUS_DMASYNC_PREWRITE) {
 			while (bpage != NULL) {
-				tempvaddr = 0;
-				datavaddr = bpage->datavaddr;
-				if (datavaddr == 0) {
+				tempvaddr = NULL;
+				datavaddr = (void *)bpage->datavaddr;
+				if (datavaddr == NULL) {
 					tempvaddr = pmap_quick_enter_page(
 					    bpage->datapage);
-					datavaddr = tempvaddr |
+					datavaddr = tempvaddr +
 					    bpage->dataoffs;
 				}
 
-				bcopy((void *)datavaddr,
+				bcopy(datavaddr,
 				    (void *)bpage->vaddr, bpage->datacount);
 
-				if (tempvaddr != 0)
+				if (tempvaddr != NULL)
 					pmap_quick_remove_page(tempvaddr);
 				bpage = STAILQ_NEXT(bpage, links);
 			}
@@ -753,19 +753,19 @@ bus_dmamap_sync(bus_dma_tag_t dmat, bus_dmamap_t map, bus_dmasync_op_t op)
 
 		if (op & BUS_DMASYNC_POSTREAD) {
 			while (bpage != NULL) {
-				tempvaddr = 0;
-				datavaddr = bpage->datavaddr;
-				if (datavaddr == 0) {
+				tempvaddr = NULL;
+				datavaddr = (void *)bpage->datavaddr;
+				if (datavaddr == NULL) {
 					tempvaddr = pmap_quick_enter_page(
 					    bpage->datapage);
-					datavaddr = tempvaddr |
+					datavaddr = tempvaddr +
 					    bpage->dataoffs;
 				}
 
 				bcopy((void *)bpage->vaddr,
-				    (void *)datavaddr, bpage->datacount);
+				    datavaddr, bpage->datacount);
 
-				if (tempvaddr != 0)
+				if (tempvaddr != NULL)
 					pmap_quick_remove_page(tempvaddr);
 				bpage = STAILQ_NEXT(bpage, links);
 			}
diff --git a/sys/powerpc/powerpc/pmap_dispatch.c b/sys/powerpc/powerpc/pmap_dispatch.c
index 95806377c03d..676e0d4d4c78 100644
--- a/sys/powerpc/powerpc/pmap_dispatch.c
+++ b/sys/powerpc/powerpc/pmap_dispatch.c
*** 322 LINES SKIPPED ***


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ea61e7.464c1.1e2f0dd7>