From 9f981ada415157b32205db6e2265b405b2329512 Mon Sep 17 00:00:00 2001 From: "Justin C. Miller" Date: Fri, 16 Sep 2022 19:39:32 -0700 Subject: [PATCH] [kernel] Save rsp0 to a process' TSS too On task switch a process' rsp0 value in its TSS was not getting updated. --- src/kernel/syscall.s | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/kernel/syscall.s b/src/kernel/syscall.s index a0f0998..ad41c2d 100644 --- a/src/kernel/syscall.s +++ b/src/kernel/syscall.s @@ -88,9 +88,11 @@ kernel_to_user_trampoline: pop rbp pop rcx - mov r11, [gs:CPU_DATA.rflags3] + mov r11, [gs:CPU_DATA.tss] + mov [r11 + TSS.rsp0], rsp mov [gs:CPU_DATA.rsp0], rsp mov rsp, [gs:CPU_DATA.rsp3] + mov r11, [gs:CPU_DATA.rflags3] swapgs o64 sysret