aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2026-04-23 17:05:55 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2026-04-23 17:05:55 +0000
commit30af462bd2641798a6ac29235b82e49ad386d363 (patch)
treef7a7aa646f09c9d299c500612ccd9f6cdce5a6c3
parentfe3e92e6868dce2ed94c98428b8df1f27ed3ef63 (diff)
-rw-r--r--sys/i386/linux/linux_machdep.c2
-rw-r--r--sys/kern/kern_exec.c14
-rw-r--r--sys/vm/vm_extern.h4
-rw-r--r--sys/vm/vm_kern.c10
4 files changed, 15 insertions, 15 deletions
diff --git a/sys/i386/linux/linux_machdep.c b/sys/i386/linux/linux_machdep.c
index 0e056aadb4b5..ff1748d7db94 100644
--- a/sys/i386/linux/linux_machdep.c
+++ b/sys/i386/linux/linux_machdep.c
@@ -852,7 +852,7 @@ cleanup:
/* Release the temporary mapping. */
if (a_out)
- kmap_free_wakeup(exec_map, (vm_offset_t)a_out, PAGE_SIZE);
+ kmap_free_wakeup(exec_map, a_out, PAGE_SIZE);
return (error);
}
diff --git a/sys/kern/kern_exec.c b/sys/kern/kern_exec.c
index 20d022050803..df5a1c044643 100644
--- a/sys/kern/kern_exec.c
+++ b/sys/kern/kern_exec.c
@@ -1414,7 +1414,7 @@ err_exit:
}
struct exec_args_kva {
- vm_offset_t addr;
+ void *addr;
u_int gen;
SLIST_ENTRY(exec_args_kva) next;
};
@@ -1442,7 +1442,7 @@ exec_prealloc_args_kva(void *arg __unused)
}
SYSINIT(exec_args_kva, SI_SUB_EXEC, SI_ORDER_ANY, exec_prealloc_args_kva, NULL);
-static vm_offset_t
+static void *
exec_alloc_args_kva(void **cookie)
{
struct exec_args_kva *argkva;
@@ -1457,8 +1457,7 @@ exec_alloc_args_kva(void **cookie)
SLIST_REMOVE_HEAD(&exec_args_kva_freelist, next);
mtx_unlock(&exec_args_kva_mtx);
}
- kasan_mark((void *)argkva->addr, exec_map_entry_size,
- exec_map_entry_size, 0);
+ kasan_mark(argkva->addr, exec_map_entry_size, exec_map_entry_size, 0);
*(struct exec_args_kva **)cookie = argkva;
return (argkva->addr);
}
@@ -1468,9 +1467,8 @@ exec_release_args_kva(struct exec_args_kva *argkva, u_int gen)
{
vm_offset_t base;
- base = argkva->addr;
- kasan_mark((void *)argkva->addr, 0, exec_map_entry_size,
- KASAN_EXEC_ARGS_FREED);
+ base = (vm_offset_t)argkva->addr;
+ kasan_mark(argkva->addr, 0, exec_map_entry_size, KASAN_EXEC_ARGS_FREED);
if (argkva->gen != gen) {
(void)vm_map_madvise(exec_map, base, base + exec_map_entry_size,
MADV_FREE);
@@ -1533,7 +1531,7 @@ int
exec_alloc_args(struct image_args *args)
{
- args->buf = (char *)exec_alloc_args_kva(&args->bufkva);
+ args->buf = exec_alloc_args_kva(&args->bufkva);
return (0);
}
diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h
index 725f6097d8a9..207eb721d129 100644
--- a/sys/vm/vm_extern.h
+++ b/sys/vm/vm_extern.h
@@ -51,8 +51,8 @@ void *kva_alloc_aligned(vm_size_t, vm_size_t);
void kva_free(void *, vm_size_t);
/* These operate on pageable virtual addresses. */
-vm_offset_t kmap_alloc_wait(vm_map_t, vm_size_t);
-void kmap_free_wakeup(vm_map_t, vm_offset_t, vm_size_t);
+void *kmap_alloc_wait(vm_map_t, vm_size_t);
+void kmap_free_wakeup(vm_map_t, void *, vm_size_t);
/* These operate on virtual addresses backed by memory. */
void *kmem_alloc_attr(vm_size_t size, int flags,
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c
index 3c5dc57f3668..3a6fed6cb3e1 100644
--- a/sys/vm/vm_kern.c
+++ b/sys/vm/vm_kern.c
@@ -714,14 +714,14 @@ kmem_free(void *addr, vm_size_t size)
*
* This routine may block.
*/
-vm_offset_t
+void *
kmap_alloc_wait(vm_map_t map, vm_size_t size)
{
vm_offset_t addr;
size = round_page(size);
if (!swap_reserve(size))
- return (0);
+ return (NULL);
for (;;) {
/*
@@ -744,7 +744,7 @@ kmap_alloc_wait(vm_map_t map, vm_size_t size)
vm_map_insert(map, NULL, 0, addr, addr + size, VM_PROT_RW, VM_PROT_RW,
MAP_ACC_CHARGED);
vm_map_unlock(map);
- return (addr);
+ return ((void *)addr);
}
/*
@@ -754,9 +754,11 @@ kmap_alloc_wait(vm_map_t map, vm_size_t size)
* waiting for memory in that map.
*/
void
-kmap_free_wakeup(vm_map_t map, vm_offset_t addr, vm_size_t size)
+kmap_free_wakeup(vm_map_t map, void *va, vm_size_t size)
{
+ vm_offset_t addr;
+ addr = (vm_offset_t)va;
vm_map_lock(map);
(void) vm_map_delete(map, trunc_page(addr), round_page(addr + size));
if ((map->flags & MAP_NEEDS_WAKEUP) != 0) {