summary refs log tree commit diff stats
path: root/hw/pc.c
diff options
context:
space:
mode:
authoraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-08-21 03:14:52 +0000
committeraurel32 <aurel32@c046a42c-6fe2-441c-8c8c-71466251a162>2008-08-21 03:14:52 +0000
commit1a7de94aa40729b4d7ed8f37c642304866232f40 (patch)
treee3821425cb282d562bda29df7fbcfa018f512e56 /hw/pc.c
parentb614106a170f77fc83ce9eb3ab0eb88379ee7161 (diff)
downloadfocaccia-qemu-1a7de94aa40729b4d7ed8f37c642304866232f40.tar.gz
focaccia-qemu-1a7de94aa40729b4d7ed8f37c642304866232f40.zip
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.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/hw/pc.c b/hw/pc.c
index 08e0fb6cae..880e57f233 100644
--- a/hw/pc.c
+++ b/hw/pc.c
@@ -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 {