summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/machdep.c
diff options
context:
space:
mode:
authorsigsegv7 <ian@vegaa.systems>2023-10-04 19:21:14 -0400
committersigsegv7 <ian@vegaa.systems>2023-10-04 19:26:28 -0400
commitccf6421ebfd30808a24b1a08aa6dbf963de1f24d (patch)
tree3bad85fcb50e1ba8e2471c0ed49b2b6513dcd56d /sys/arch/amd64/machdep.c
parent3da66ee8c13dc5826d3eb1087b2b61bee7ceaf9e (diff)
kernel/amd64: Initialize IDT and GDT first
This commit moves the interrupts_init() and gdt_load() calls to the top so interrupts are set up first in case something goes wrong so we can get information from exception handlers. Signed-off-by: sigsegv7 <ian@vegaa.systems>
Diffstat (limited to 'sys/arch/amd64/machdep.c')
-rw-r--r--sys/arch/amd64/machdep.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/arch/amd64/machdep.c b/sys/arch/amd64/machdep.c
index 9fd7a12..edff4f2 100644
--- a/sys/arch/amd64/machdep.c
+++ b/sys/arch/amd64/machdep.c
@@ -68,14 +68,15 @@ processor_init(void)
/* Indicates what doesn't need to be init anymore */
static uint8_t init_flags = 0;
+ interrupts_init();
+ gdt_load(&g_gdtr);
+
if (!__TEST(init_flags, INIT_FLAG_IOAPIC)) {
init_flags |= INIT_FLAG_IOAPIC;
ioapic_init();
}
lapic_init(); /* Per core */
- gdt_load(&g_gdtr);
- interrupts_init();
/* Enable spectre mitigation if enabled */
if (try_spectre_mitigate != NULL)