Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Apr 2026 18:16:11 +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: d8863680744f - main - pmap_change_prot: Use void * instead of vm_offset_t
Message-ID:  <69ea61eb.46d83.55b6fff9@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=d8863680744f2de6a97ca80d8eba3755f506203c

commit d8863680744f2de6a97ca80d8eba3755f506203c
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_change_prot: 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   | 6 +++---
 sys/amd64/include/pmap.h | 2 +-
 sys/arm64/arm64/pmap.c   | 6 +++---
 sys/arm64/include/pmap.h | 2 +-
 sys/kern/link_elf.c      | 4 ++--
 sys/kern/link_elf_obj.c  | 2 +-
 6 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 6a04088ec479..66b17f89b4ff 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -9673,16 +9673,16 @@ pmap_change_attr(void *va, vm_size_t size, int mode)
  * map are never executable.
  */
 int
-pmap_change_prot(vm_offset_t va, vm_size_t size, vm_prot_t prot)
+pmap_change_prot(void *va, vm_size_t size, vm_prot_t prot)
 {
 	int error;
 
 	/* Only supported within the kernel map. */
-	if (va < kva_layout.km_low)
+	if ((vm_offset_t)va < kva_layout.km_low)
 		return (EINVAL);
 
 	PMAP_LOCK(kernel_pmap);
-	error = pmap_change_props_locked(va, size, prot, -1,
+	error = pmap_change_props_locked((vm_offset_t)va, size, prot, -1,
 	    MAPDEV_ASSERTVALID);
 	PMAP_UNLOCK(kernel_pmap);
 	return (error);
diff --git a/sys/amd64/include/pmap.h b/sys/amd64/include/pmap.h
index 69366588fec8..1bf67248125c 100644
--- a/sys/amd64/include/pmap.h
+++ b/sys/amd64/include/pmap.h
@@ -393,7 +393,7 @@ void	pmap_allow_2m_x_ept_recalculate(void);
 void	pmap_bootstrap(vm_paddr_t *);
 int	pmap_cache_bits(pmap_t pmap, int mode, bool is_pde);
 int	pmap_change_attr(void *, vm_size_t, int);
-int	pmap_change_prot(vm_offset_t, vm_size_t, vm_prot_t);
+int	pmap_change_prot(void *, vm_size_t, vm_prot_t);
 void	pmap_demote_DMAP(vm_paddr_t base, vm_size_t len, bool invalidate);
 void	pmap_flush_cache_range(vm_offset_t, vm_offset_t);
 void	pmap_flush_cache_phys_range(vm_paddr_t, vm_paddr_t, vm_memattr_t);
diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c
index 285fa158ecd5..3d42ee058c28 100644
--- a/sys/arm64/arm64/pmap.c
+++ b/sys/arm64/arm64/pmap.c
@@ -8237,16 +8237,16 @@ pmap_change_attr(void *va, vm_size_t size, int mode)
  * map are never executable.
  */
 int
-pmap_change_prot(vm_offset_t va, vm_size_t size, vm_prot_t prot)
+pmap_change_prot(void *va, vm_size_t size, vm_prot_t prot)
 {
 	int error;
 
 	/* Only supported within the kernel map. */
-	if (va < VM_MIN_KERNEL_ADDRESS)
+	if ((vm_offset_t)va < VM_MIN_KERNEL_ADDRESS)
 		return (EINVAL);
 
 	PMAP_LOCK(kernel_pmap);
-	error = pmap_change_props_locked(va, size, prot, -1, false);
+	error = pmap_change_props_locked((vm_offset_t)va, size, prot, -1, false);
 	PMAP_UNLOCK(kernel_pmap);
 	return (error);
 }
diff --git a/sys/arm64/include/pmap.h b/sys/arm64/include/pmap.h
index c984ac46226c..599e5a7f46ef 100644
--- a/sys/arm64/include/pmap.h
+++ b/sys/arm64/include/pmap.h
@@ -145,7 +145,7 @@ void	pmap_activate_vm(pmap_t);
 void	pmap_bootstrap_dmap(vm_size_t);
 void	pmap_bootstrap(void);
 int	pmap_change_attr(void *va, vm_size_t size, int mode);
-int	pmap_change_prot(vm_offset_t va, vm_size_t size, vm_prot_t prot);
+int	pmap_change_prot(void *va, vm_size_t size, vm_prot_t prot);
 void	pmap_kenter(vm_offset_t sva, vm_size_t size, vm_paddr_t pa, int mode);
 void	pmap_kenter_device(vm_offset_t, vm_size_t, vm_paddr_t);
 bool	pmap_klookup(vm_offset_t va, vm_paddr_t *pa);
diff --git a/sys/kern/link_elf.c b/sys/kern/link_elf.c
index 4c77f444d961..3a1bec6b09b5 100644
--- a/sys/kern/link_elf.c
+++ b/sys/kern/link_elf.c
@@ -826,8 +826,8 @@ preload_protect1(elf_file_t ef, vm_prot_t prot, bool reset)
 			if ((phdr->p_flags & PF_X) != 0)
 				nprot |= VM_PROT_EXECUTE;
 		}
-		error = pmap_change_prot((vm_offset_t)ef->address +
-		    phdr->p_vaddr, round_page(phdr->p_memsz), prot | nprot);
+		error = pmap_change_prot(ef->address + phdr->p_vaddr,
+		    round_page(phdr->p_memsz), prot | nprot);
 		if (error != 0)
 			break;
 	}
diff --git a/sys/kern/link_elf_obj.c b/sys/kern/link_elf_obj.c
index cb96046694ef..511a44006f03 100644
--- a/sys/kern/link_elf_obj.c
+++ b/sys/kern/link_elf_obj.c
@@ -232,7 +232,7 @@ link_elf_protect_range(elf_file_t ef, vm_offset_t start, vm_offset_t end,
 		return;
 	if (ef->preloaded) {
 #ifdef __amd64__
-		error = pmap_change_prot(start, end - start, prot);
+		error = pmap_change_prot((void *)start, end - start, prot);
 		KASSERT(error == 0,
 		    ("link_elf_protect_range: pmap_change_prot() returned %d",
 		    error));


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69ea61eb.46d83.55b6fff9>