diff options
author | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-08-21 03:14:52 +0000 |
---|---|---|
committer | aurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162> | 2008-08-21 03:14:52 +0000 |
commit | 1a7de94aa40729b4d7ed8f37c642304866232f40 (patch) | |
tree | e3821425cb282d562bda29df7fbcfa018f512e56 /hw/pc.c | |
parent | b614106a170f77fc83ce9eb3ab0eb88379ee7161 (diff) |
De-assert PIC IRQs properly at APIC level
[ Taking latest isapc changes into account. ]
Ensure that PIC-delivered IRQs are properly de-asserted in case the APIC
is in EXTINT or FIXED mode (with level-triggering selected) on LINT0.
Fixes EFI-BIOS boot issues.
This patch also cleans up a bit the interface between PIC and APIC,
making apic_local_deliver private again.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5041 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/pc.c')
-rw-r--r-- | hw/pc.c | 4 |
1 files changed, 1 insertions, 3 deletions
@@ -119,11 +119,9 @@ static void pic_irq_request(void *opaque, int irq, int level) CPUState *env = first_cpu; if (env->apic_state) { - if (!level) - return; while (env) { if (apic_accept_pic_intr(env)) - apic_local_deliver(env, APIC_LINT0); + apic_deliver_pic_intr(env, level); env = env->next_cpu; } } else { |