diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2022-11-10 03:01:57 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2022-11-10 03:01:57 +0100 |
commit | 356d54992ab479e4709b3afce222759bfb3e0989 (patch) | |
tree | b3f69f020be52528697cf58489cd79addf76142e /i386 | |
parent | 5eef813a78f77faf8bc741eb7adc738877c7184b (diff) | |
download | gnumach-356d54992ab479e4709b3afce222759bfb3e0989.tar.gz gnumach-356d54992ab479e4709b3afce222759bfb3e0989.tar.bz2 gnumach-356d54992ab479e4709b3afce222759bfb3e0989.zip |
interrupt: Fix passing parameter to splx_cli and ioapic_irq_eoi
e2fcf261076b (""interrupt: Fix saving irq/ipl when linux drivers are
disabled") broke booting under some conditions, because the parameters were
erroneously written 4 bytes too far for splx_cli and ioapic_irq_eoi to
read them.
Diffstat (limited to 'i386')
-rw-r--r-- | i386/i386at/interrupt.S | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/i386/i386at/interrupt.S b/i386/i386at/interrupt.S index 8fd18392..7480fba9 100644 --- a/i386/i386at/interrupt.S +++ b/i386/i386at/interrupt.S @@ -66,7 +66,7 @@ ENTRY(interrupt) call *EXT(ivect)(%eax) /* call interrupt handler */ movl S_IPL,%eax /* restore previous ipl */ - movl %eax,S_ARG0 + movl %eax,(%esp) call splx_cli /* restore previous ipl */ cli /* XXX no more nested interrupts */ @@ -112,7 +112,7 @@ ENTRY(interrupt) cmpl $16,%ecx /* was this a low ISA intr? */ jge _no_eoi /* no, must be PCI (let irq_ack handle EOI) */ _isa_eoi: - movl %ecx,S_ARG0 /* load irq number as 1st arg */ + movl %ecx,(%esp) /* load irq number as 1st arg */ call EXT(ioapic_irq_eoi) /* ioapic irq specific EOI */ #endif addl $28,%esp /* pop local variables */ |