Skip to content

Commit

Permalink
MFC r343850:
Browse files Browse the repository at this point in the history
contigmalloc: handle M_EXEC.
  • Loading branch information
kostikbel committed Feb 14, 2019
1 parent 779e7aa commit bcfd287
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions sys/vm/vm_kern.c
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ kmem_alloc_attr_domain(int domain, vm_size_t size, int flags, vm_paddr_t low,
vm_offset_t addr, i, offset;
vm_page_t m;
int pflags, tries;
vm_prot_t prot;

size = round_page(size);
vmem = vm_dom[domain].vmd_kernel_arena;
Expand All @@ -193,6 +194,7 @@ kmem_alloc_attr_domain(int domain, vm_size_t size, int flags, vm_paddr_t low,
pflags = malloc2vm_flags(flags) | VM_ALLOC_NOBUSY | VM_ALLOC_WIRED;
pflags &= ~(VM_ALLOC_NOWAIT | VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL);
pflags |= VM_ALLOC_NOWAIT;
prot = (flags & M_EXEC) != 0 ? VM_PROT_ALL : VM_PROT_RW;
VM_OBJECT_WLOCK(object);
for (i = 0; i < size; i += PAGE_SIZE) {
tries = 0;
Expand Down Expand Up @@ -220,8 +222,8 @@ kmem_alloc_attr_domain(int domain, vm_size_t size, int flags, vm_paddr_t low,
if ((flags & M_ZERO) && (m->flags & PG_ZERO) == 0)
pmap_zero_page(m);
m->valid = VM_PAGE_BITS_ALL;
pmap_enter(kernel_pmap, addr + i, m, VM_PROT_RW,
VM_PROT_RW | PMAP_ENTER_WIRED, 0);
pmap_enter(kernel_pmap, addr + i, m, prot,
prot | PMAP_ENTER_WIRED, 0);
}
VM_OBJECT_WUNLOCK(object);
return (addr);
Expand Down

0 comments on commit bcfd287

Please sign in to comment.