summaryrefslogtreecommitdiff
path: root/sys/arch/amd64/cpu/mp.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/amd64/cpu/mp.c')
-rw-r--r--sys/arch/amd64/cpu/mp.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/arch/amd64/cpu/mp.c b/sys/arch/amd64/cpu/mp.c
index a84648b..7ce3a06 100644
--- a/sys/arch/amd64/cpu/mp.c
+++ b/sys/arch/amd64/cpu/mp.c
@@ -111,6 +111,14 @@ static volatile uint32_t aps_up = 0;
__section(".trampoline") static char ap_code[4096];
static void
+cpu_idle(void)
+{
+ for (;;) {
+ __asmv("hlt");
+ }
+}
+
+static void
cpu_mtrr_save(void)
{
uint64_t mtrr_cap;
@@ -283,9 +291,8 @@ cpu_lm_entry(void)
atomic_inc_int(&aps_up);
cpu_list[aps_up] = ci;
- for (;;) {
- __asmv("cli; hlt");
- }
+ cpu_idle();
+ __builtin_unreachable();
}
static int