From 3de50c965376fa47e664f2f2701b339765763767 Mon Sep 17 00:00:00 2001 From: Ian Moffett Date: Wed, 10 Jan 2024 18:58:15 -0500 Subject: kernel/amd64: machdep: Add pre_init() This commit introduces a pre_init() function for setting up things that processor_init() may depend on Signed-off-by: Ian Moffett --- sys/arch/amd64/amd64/machdep.c | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'sys/arch/amd64') diff --git a/sys/arch/amd64/amd64/machdep.c b/sys/arch/amd64/amd64/machdep.c index 1000ebf..ec1d48f 100644 --- a/sys/arch/amd64/amd64/machdep.c +++ b/sys/arch/amd64/amd64/machdep.c @@ -80,6 +80,20 @@ processor_halt(void) __ASMV("cli; hlt"); } +/* + * Things set up before processor_init() call... + */ +void +pre_init(void) +{ + /* + * These are critical things that need to be set up as soon as possible + * way before the processor_init() call. + */ + interrupts_init(); + gdt_load(&g_gdtr); +} + void processor_init(void) { @@ -88,9 +102,6 @@ processor_init(void) struct cpu_info *cur_cpu = this_cpu(); - interrupts_init(); - gdt_load(&g_gdtr); - CPU_INFO_LOCK(cur_cpu); init_tss(cur_cpu); @@ -114,5 +125,4 @@ processor_init(void) /* Use spectre mitigation if enabled */ if (try_spectre_mitigate != NULL) try_spectre_mitigate(); - } -- cgit v1.2.3