Page MenuHomeFreeBSD

D17827.id49975.diff
No OneTemporary

D17827.id49975.diff

Index: sys/kern/kern_exec.c
===================================================================
--- sys/kern/kern_exec.c
+++ sys/kern/kern_exec.c
@@ -1347,7 +1347,8 @@
mtx_init(&exec_args_kva_mtx, "exec args kva", NULL, MTX_DEF);
for (i = 0; i < exec_map_entries; i++) {
argkva = malloc(sizeof(*argkva), M_PARGS, M_WAITOK);
- argkva->addr = kmap_alloc_wait(exec_map, exec_map_entry_size);
+ argkva->addr = kmap_alloc_wait(exec_map, exec_map_entry_size,
+ VM_PROT_RW, VM_PROT_RW);
argkva->gen = exec_args_gen;
SLIST_INSERT_HEAD(&exec_args_kva_freelist, argkva, next);
}
Index: sys/kern/sys_pipe.c
===================================================================
--- sys/kern/sys_pipe.c
+++ sys/kern/sys_pipe.c
@@ -509,9 +509,8 @@
size = round_page(size);
buffer = (caddr_t) vm_map_min(pipe_map);
- error = vm_map_find(pipe_map, NULL, 0,
- (vm_offset_t *) &buffer, size, 0, VMFS_ANY_SPACE,
- VM_PROT_ALL, VM_PROT_ALL, 0);
+ error = vm_map_find(pipe_map, NULL, 0, (vm_offset_t *)&buffer, size, 0,
+ VMFS_ANY_SPACE, VM_PROT_RW, VM_PROT_RW, 0);
if (error != KERN_SUCCESS) {
if ((cpipe->pipe_buffer.buffer == NULL) &&
(size > SMALL_PIPE_SIZE)) {
Index: sys/vm/vm_extern.h
===================================================================
--- sys/vm/vm_extern.h
+++ sys/vm/vm_extern.h
@@ -51,7 +51,7 @@
void kva_free(vm_offset_t, vm_size_t);
/* These operate on pageable virtual addresses. */
-vm_offset_t kmap_alloc_wait(vm_map_t, vm_size_t);
+vm_offset_t kmap_alloc_wait(vm_map_t, vm_size_t, vm_prot_t, vm_prot_t);
void kmap_free_wakeup(vm_map_t, vm_offset_t, vm_size_t);
/* These operate on virtual addresses backed by memory. */
Index: sys/vm/vm_kern.c
===================================================================
--- sys/vm/vm_kern.c
+++ sys/vm/vm_kern.c
@@ -625,7 +625,7 @@
* This routine may block.
*/
vm_offset_t
-kmap_alloc_wait(vm_map_t map, vm_size_t size)
+kmap_alloc_wait(vm_map_t map, vm_size_t size, vm_prot_t prot, vm_prot_t maxprot)
{
vm_offset_t addr;
@@ -650,8 +650,8 @@
map->needs_wakeup = TRUE;
vm_map_unlock_and_wait(map, 0);
}
- vm_map_insert(map, NULL, 0, addr, addr + size, VM_PROT_ALL,
- VM_PROT_ALL, MAP_ACC_CHARGED);
+ vm_map_insert(map, NULL, 0, addr, addr + size, prot, maxprot,
+ MAP_ACC_CHARGED);
vm_map_unlock(map);
return (addr);
}

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 3, 4:14 AM (11 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
40112506
Default Alt Text
D17827.id49975.diff (2 KB)

Event Timeline