svn commit: r360153 - head/sys/vm
Mark Johnston
markj at FreeBSD.org
Tue Apr 21 15:55:29 UTC 2020
Author: markj
Date: Tue Apr 21 15:55:28 2020
New Revision: 360153
URL: https://svnweb.freebsd.org/changeset/base/360153
Log:
Minimize conditional compilation for handling of M_EXEC.
This simplifies some planned changes. No functional change intended.
Reviewed by: kib
MFC after: 1 week
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D24474
Modified:
head/sys/vm/vm_kern.c
Modified: head/sys/vm/vm_kern.c
==============================================================================
--- head/sys/vm/vm_kern.c Tue Apr 21 15:55:08 2020 (r360152)
+++ head/sys/vm/vm_kern.c Tue Apr 21 15:55:28 2020 (r360153)
@@ -402,14 +402,10 @@ kmem_malloc_domain(int domain, vm_size_t size, int fla
vm_offset_t addr;
int rv;
-#if VM_NRESERVLEVEL > 0
if (__predict_true((flags & M_EXEC) == 0))
arena = vm_dom[domain].vmd_kernel_arena;
else
arena = vm_dom[domain].vmd_kernel_rwx_arena;
-#else
- arena = vm_dom[domain].vmd_kernel_arena;
-#endif
size = round_page(size);
if (vmem_alloc(arena, size, flags | M_BESTFIT, &addr))
return (0);
@@ -501,10 +497,8 @@ retry:
vm_page_valid(m);
pmap_enter(kernel_pmap, addr + i, m, prot,
prot | PMAP_ENTER_WIRED, 0);
-#if VM_NRESERVLEVEL > 0
if (__predict_false((prot & VM_PROT_EXECUTE) != 0))
m->oflags |= VPO_KMEM_EXEC;
-#endif
}
VM_OBJECT_WUNLOCK(object);
@@ -578,14 +572,10 @@ _kmem_unback(vm_object_t object, vm_offset_t addr, vm_
VM_OBJECT_WLOCK(object);
m = vm_page_lookup(object, atop(offset));
domain = vm_phys_domain(m);
-#if VM_NRESERVLEVEL > 0
if (__predict_true((m->oflags & VPO_KMEM_EXEC) == 0))
arena = vm_dom[domain].vmd_kernel_arena;
else
arena = vm_dom[domain].vmd_kernel_rwx_arena;
-#else
- arena = vm_dom[domain].vmd_kernel_arena;
-#endif
for (; offset < end; offset += PAGE_SIZE, m = next) {
next = vm_page_next(m);
vm_page_xbusy_claim(m);
@@ -814,6 +804,9 @@ kmem_init(vm_offset_t start, vm_offset_t end)
vmem_set_import(vm_dom[domain].vmd_kernel_rwx_arena,
kva_import_domain, (vmem_release_t *)vmem_xfree,
kernel_arena, KVA_QUANTUM);
+#else
+ vm_dom[domain].vmd_kernel_rwx_arena =
+ vm_dom[domain].vmd_kernel_arena;
#endif
}
More information about the svn-src-head
mailing list