sys/lapic: Widen IA32_APIC_BASE address mask to cover full physical range
diff --git a/common/sys/lapic.c b/common/sys/lapic.c
index c5d91c9e..b70c0e0d 100644
--- a/common/sys/lapic.c
+++ b/common/sys/lapic.c
@@ -287,12 +287,12 @@ bool lapic_check(void) {
}
uint32_t lapic_read(uint32_t reg) {
- size_t lapic_mmio_base = (size_t)(rdmsr(0x1b) & 0xfffff000);
+ size_t lapic_mmio_base = (size_t)(rdmsr(0x1b) & 0xfffffffffffff000);
return mmind(lapic_mmio_base + reg);
}
void lapic_write(uint32_t reg, uint32_t data) {
- size_t lapic_mmio_base = (size_t)(rdmsr(0x1b) & 0xfffff000);
+ size_t lapic_mmio_base = (size_t)(rdmsr(0x1b) & 0xfffffffffffff000);
mmoutd(lapic_mmio_base + reg, data);
}
