summaryrefslogtreecommitdiff
path: root/sys/arch/amd64
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/amd64')
-rw-r--r--sys/arch/amd64/cpu/lapic.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/arch/amd64/cpu/lapic.c b/sys/arch/amd64/cpu/lapic.c
index fb0100c..8f04046 100644
--- a/sys/arch/amd64/cpu/lapic.c
+++ b/sys/arch/amd64/cpu/lapic.c
@@ -241,7 +241,7 @@ int
lapic_send_ipi(struct mcb *mcb, struct lapic_ipi *ipi)
{
const uint16_t X2APIC_SELF = 0x083F;
- uint32_t icr_lo, icr_hi;
+ uint64_t icr_lo, icr_hi;
if (ipi == NULL) {
return -EINVAL;
@@ -272,8 +272,8 @@ lapic_send_ipi(struct mcb *mcb, struct lapic_ipi *ipi)
lapic_write(mcb, LAPIC_REG_ICRHI, icr_hi);
} else {
icr_lo = lapic_read(mcb, LAPIC_REG_ICRLO);
- icr_lo &= ~0xFFFFFFFF;
- icr_lo |= ipi->dest_id;
+ icr_lo &= ~0xFFFFFFFFFFFFFFFF;
+ icr_lo |= (ipi->dest_id << 32);
}
/*