From b9f6b406519f52675639e5ea3def5c323c872b89 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Sat, 26 Jun 2021 06:27:33 +0200 Subject: [PATCH] Kernel: Clean up create_signal_trampoline a bit The types for asm_signal_trampoline and asm_signal_trampoline_end were incorrect. They both point into the text segment but they're not really functions. --- Kernel/Process.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Kernel/Process.cpp b/Kernel/Process.cpp index ccf3adc075..f4a6befab8 100644 --- a/Kernel/Process.cpp +++ b/Kernel/Process.cpp @@ -315,8 +315,8 @@ void signal_trampoline_dummy() #endif } -extern "C" void asm_signal_trampoline(void) __attribute__((used)); -extern "C" void asm_signal_trampoline_end(void); +extern "C" char const asm_signal_trampoline[]; +extern "C" char const asm_signal_trampoline_end[]; void create_signal_trampoline() { @@ -324,12 +324,10 @@ void create_signal_trampoline() g_signal_trampoline_region = MM.allocate_kernel_region(PAGE_SIZE, "Signal trampolines", Region::Access::Read | Region::Access::Write).leak_ptr(); g_signal_trampoline_region->set_syscall_region(true); - u8* trampoline = (u8*)asm_signal_trampoline; - u8* trampoline_end = (u8*)asm_signal_trampoline_end; - size_t trampoline_size = trampoline_end - trampoline; + size_t trampoline_size = asm_signal_trampoline_end - asm_signal_trampoline; u8* code_ptr = (u8*)g_signal_trampoline_region->vaddr().as_ptr(); - memcpy(code_ptr, trampoline, trampoline_size); + memcpy(code_ptr, asm_signal_trampoline, trampoline_size); g_signal_trampoline_region->set_writable(false); g_signal_trampoline_region->remap();