From de32bc5412955fe970fa330e94107a19aee5a1f6 Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Sat, 12 Feb 2022 09:10:16 +0000 Subject: [PATCH] Ensure we only use 32-bit reads and writes when accessing APIC registers. --- system/smp.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/system/smp.c b/system/smp.c index 4a97dd5..3b7f36d 100644 --- a/system/smp.c +++ b/system/smp.c @@ -20,6 +20,7 @@ #include "efi.h" #include "cpuid.h" +#include "memrw32.h" #include "memsize.h" #include "msr.h" #include "pmem.h" @@ -241,17 +242,17 @@ uintptr_t rsdp_addr = 0; static int my_apic_id(void) { - return apic[APIC_REG_ID][0] >> 24; + return read32(&apic[APIC_REG_ID][0]) >> 24; } static void apic_write(int reg, uint32_t val) { - apic[reg][0] = val; + write32(&apic[reg][0], val); } static uint32_t apic_read(int reg) { - return apic[reg][0]; + return read32(&apic[reg][0]); } static int checksum(const void *data, int length)