diff options
author | Damien Zammit <damien@zamaudio.com> | 2024-02-10 21:43:51 +1100 |
---|---|---|
committer | Damien Zammit <damien@zamaudio.com> | 2024-02-10 21:45:10 +1100 |
commit | 395e481e66c18091f77d57a61ebb63278b31df82 (patch) | |
tree | 7a2061cb3a3ee94025e766d3bee3da09e48c50e6 | |
parent | 10e70143fd451dc9855a562482ce9195f1d0d0bb (diff) |
smp: Rearrange IPI sending mechanism
Wait for ICR then just assert the signal.
-rw-r--r-- | i386/i386/smp.c | 8 |
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); } |