summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2024-02-10 21:43:51 +1100
committerDamien Zammit <damien@zamaudio.com>2024-02-10 21:45:10 +1100
commit395e481e66c18091f77d57a61ebb63278b31df82 (patch)
tree7a2061cb3a3ee94025e766d3bee3da09e48c50e6
parent10e70143fd451dc9855a562482ce9195f1d0d0bb (diff)
smp: Rearrange IPI sending mechanism
Wait for ICR then just assert the signal.
-rw-r--r--i386/i386/smp.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/i386/i386/smp.c b/i386/i386/smp.c
index 05e9de67..a758eea3 100644
--- a/i386/i386/smp.c
+++ b/i386/i386/smp.c
@@ -54,17 +54,11 @@ static void smp_send_ipi(unsigned apic_id, unsigned vector)
cpu_intr_save(&flags);
- apic_send_ipi(NO_SHORTHAND, FIXED, PHYSICAL, ASSERT, EDGE, vector, apic_id);
-
do {
cpu_pause();
} while(lapic->icr_low.delivery_status == SEND_PENDING);
- apic_send_ipi(NO_SHORTHAND, FIXED, PHYSICAL, DE_ASSERT, EDGE, vector, apic_id);
-
- do {
- cpu_pause();
- } while(lapic->icr_low.delivery_status == SEND_PENDING);
+ apic_send_ipi(NO_SHORTHAND, FIXED, PHYSICAL, ASSERT, EDGE, vector, apic_id);
cpu_intr_restore(flags);
}