git: d8863680744f - main - pmap_change_prot: Use void * instead of vm_offset_t
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 23 Apr 2026 18:16:11 UTC
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));