From 1b02e251403c458eebe0f06dd8c689769adf9ad7 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Wed, 3 Jul 2024 12:57:21 -0400 Subject: [PATCH] misc(kernel): use load fence before swapgs Avoid potential speculative execution issues with swapgs, such as swapgs being speculatively missed. Signed-off-by: Ian Moffett --- src/aero_kernel/src/arch/x86_64/interrupts/handlers.asm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/aero_kernel/src/arch/x86_64/interrupts/handlers.asm b/src/aero_kernel/src/arch/x86_64/interrupts/handlers.asm index 3e339fbaad0..2b1fa600ed7 100644 --- a/src/aero_kernel/src/arch/x86_64/interrupts/handlers.asm +++ b/src/aero_kernel/src/arch/x86_64/interrupts/handlers.asm @@ -39,6 +39,7 @@ interrupt_handler_%1: test qword [rsp + 16], 0x3 ; skip the SWAPGS instruction if CS & 0b11 == 0b00. jz .dont_swapgs + lfence swapgs .dont_swapgs: @@ -70,6 +71,7 @@ interrupt_handler_%1: test qword [rsp + 8], 0x3 ; skip the SWAPGS instruction if CS & 0b11 == 0b00. jz .dont_swapgs_again + lfence swapgs .dont_swapgs_again: