From 4b9ace6d02eaf7eaef0451880686e095226292b9 Mon Sep 17 00:00:00 2001 From: Matheus Date: Wed, 17 Jun 2026 22:40:51 -0300 Subject: [PATCH] syscall: fix signal returns from syscall --- kernel-src/arch/x86-64/syscall.asm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/kernel-src/arch/x86-64/syscall.asm b/kernel-src/arch/x86-64/syscall.asm index 1813bcfc..30874526 100644 --- a/kernel-src/arch/x86-64/syscall.asm +++ b/kernel-src/arch/x86-64/syscall.asm @@ -306,6 +306,11 @@ arch_syscall_entry: .return: cli + ; save the syscall return values into the saved context before + ; signal delivery can rewrite it for a user handler + mov [rsp + 48], rax ; context->rax + mov [rsp + 72], rdx ; context->rdx + ; call return logging function mov rdi, rax mov rsi, rdx @@ -328,10 +333,10 @@ arch_syscall_entry: mov es,rbx pop rbx mov ds,rbx - add rsp, 8 ; rax + pop rax pop rbx pop rcx - add rsp, 8 ; rdx + pop rdx pop r8 pop r9 pop r10