From dc2a8ccd440ee3741b61606eafed3f7e092f4312 Mon Sep 17 00:00:00 2001
From: Mark Asselstine <mark.asselstine@windriver.com>
Date: Tue, 26 Feb 2013 11:43:28 -0500
Subject: [PATCH 03/12] apic: fixup fallthrough to PIC

Commit 0e21e12bb311c4c1095d0269dc2ef81196ccb60a [Don't route PIC
interrupts through the local APIC if the local APIC config says so.]
missed a check to ensure the local APIC is enabled. Since if the local
APIC is disabled it doesn't matter what the local APIC config says.

If this check isn't done and the guest has disabled the local APIC the
guest will receive a general protection fault, similar to what is seen
here:

https://lists.gnu.org/archive/html/qemu-devel/2012-12/msg02304.html

The GPF is caused by an attempt to service interrupt 0xffffffff. This
comes about since cpu_get_pic_interrupt() calls apic_accept_pic_intr()
(with the local APIC disabled apic_get_interrupt() returns -1).
apic_accept_pic_intr() returns 0 and thus the interrupt number which
is returned from cpu_get_pic_interrupt(), and which is attempted to be
serviced, is -1.

Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
Upstream-Status: Submitted [https://lists.gnu.org/archive/html/qemu-devel/2013-04/msg00878.html]
Signed-off-by: He Zhe <zhe.he@windriver.com>

---
 hw/intc/apic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/hw/intc/apic.c b/hw/intc/apic.c
index 3df11c34d..9506c88ce 100644
--- a/hw/intc/apic.c
+++ b/hw/intc/apic.c
@@ -605,7 +605,7 @@ int apic_accept_pic_intr(DeviceState *dev)
     APICCommonState *s = APIC(dev);
     uint32_t lvt0;
 
-    if (!s)
+    if (!s || !(s->spurious_vec & APIC_SV_ENABLE))
         return -1;
 
     lvt0 = s->lvt[APIC_LVT_LINT0];
-- 
2.30.2

