summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Zammit <damien@zamaudio.com>2021-04-05 21:59:20 +1000
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2021-04-05 14:04:33 +0200
commitc722aff68a2e4ed0db8525f849e449341370f705 (patch)
tree9d99da00fd2ee2c7ee7451c536e4c2bc6b89078a
parent4341012c670df5ad59ab9c7ddf3b56924c8c324a (diff)
ioapic: Refactor EOI
Message-Id: <20210405115921.184572-2-damien@zamaudio.com>
-rw-r--r--i386/i386/irq.c1
-rw-r--r--i386/i386at/interrupt.S1
-rw-r--r--i386/i386at/ioapic.c2
-rw-r--r--x86_64/interrupt.S1
4 files changed, 2 insertions, 3 deletions
diff --git a/i386/i386/irq.c b/i386/i386/irq.c
index 42921617..a7c98890 100644
--- a/i386/i386/irq.c
+++ b/i386/i386/irq.c
@@ -31,7 +31,6 @@ irq_eoi (struct irqdev *dev, int id)
{
#ifdef APIC
ioapic_irq_eoi (dev->irq[id]);
- lapic_eoi ();
#endif
}
diff --git a/i386/i386at/interrupt.S b/i386/i386at/interrupt.S
index cb314d32..e6a6af00 100644
--- a/i386/i386at/interrupt.S
+++ b/i386/i386at/interrupt.S
@@ -92,7 +92,6 @@ _isa_eoi:
pushl %ecx /* push irq number */
call EXT(ioapic_irq_eoi) /* ioapic irq specific EOI */
addl $4,%esp /* pop irq number */
- call EXT(lapic_eoi) /* lapic broadcast EOI */
_no_eoi:
ret
#endif
diff --git a/i386/i386at/ioapic.c b/i386/i386at/ioapic.c
index 30ae30e1..4d0f4fca 100644
--- a/i386/i386at/ioapic.c
+++ b/i386/i386at/ioapic.c
@@ -262,6 +262,8 @@ ioapic_irq_eoi(int pin)
entry.both = ioapic_read_entry(apic, pin);
ioapic->eoi.r = entry.both.vector;
}
+
+ lapic_eoi ();
}
void
diff --git a/x86_64/interrupt.S b/x86_64/interrupt.S
index 0dfda313..fccf6e28 100644
--- a/x86_64/interrupt.S
+++ b/x86_64/interrupt.S
@@ -96,7 +96,6 @@ ENTRY(interrupt)
_isa_eoi:
movl %ecx,%edi /* load irq number as 1st arg */
call EXT(ioapic_irq_eoi) /* ioapic irq specific EOI */
- call EXT(lapic_eoi) /* lapic broadcast EOI */
_no_eoi:
ret
#endif