The branch main has been updated by markj:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=73a78b5efa737f53c81b37926476757b28888e54

commit 73a78b5efa737f53c81b37926476757b28888e54
Author:     Mark Johnston <[email protected]>
AuthorDate: 2022-10-14 15:17:12 +0000
Commit:     Mark Johnston <[email protected]>
CommitDate: 2022-10-14 15:32:47 +0000

    kinst: Clarify a comment in the trampoline allocator
    
    Fixes:  f0bc4ed144fc ("kinst: Initial revision")
---
 sys/cddl/dev/kinst/trampoline.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/sys/cddl/dev/kinst/trampoline.c b/sys/cddl/dev/kinst/trampoline.c
index 094b055f1b14..2749fe7144a2 100644
--- a/sys/cddl/dev/kinst/trampoline.c
+++ b/sys/cddl/dev/kinst/trampoline.c
@@ -58,10 +58,11 @@ kinst_trampchunk_alloc(void)
 
        /*
         * Allocate virtual memory for the trampoline chunk. The returned
-        * address is saved in "trampaddr".
-        *
-        * Setting "trampaddr" to KERNBASE causes vm_map_find() to return an
-        * address above KERNBASE, so this satisfies both requirements.
+        * address is saved in "trampaddr".  To simplify population of
+        * trampolines, we follow the amd64 kernel's code model and allocate
+        * them above KERNBASE, i.e., in the top 2GB of the kernel's virtual
+        * address space.  Trampolines must be executable so max_prot must
+        * include VM_PROT_EXECUTE.
         */
        trampaddr = KERNBASE;
        error = vm_map_find(kernel_map, NULL, 0, &trampaddr,

Reply via email to