summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAvi Kivity2010-12-31 09:52:15 +0100
committerAvi Kivity2011-01-02 10:52:48 +0100
commitd0dfc6b74a0c6e9ee46b62713256e2b025244d3c (patch)
treea065d54c18eaa687762e032dd46c28d4affff3b1
parentKVM: MMU: Fix incorrect direct gfn for unpaged mode shadow (diff)
downloadkernel-qcow2-linux-d0dfc6b74a0c6e9ee46b62713256e2b025244d3c.tar.gz
kernel-qcow2-linux-d0dfc6b74a0c6e9ee46b62713256e2b025244d3c.tar.xz
kernel-qcow2-linux-d0dfc6b74a0c6e9ee46b62713256e2b025244d3c.zip
KVM: i8259: initialize isr_ack
isr_ack is never initialized. So, until the first PIC reset, interrupts may fail to be injected. This can cause Windows XP to fail to boot, as reported in the fallout from the fix to https://bugzilla.kernel.org/show_bug.cgi?id=21962. Reported-and-tested-by: Nicolas Prochazka <prochazka.nicolas@gmail.com> Signed-off-by: Avi Kivity <avi@redhat.com>
-rw-r--r--arch/x86/kvm/i8259.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/kvm/i8259.c b/arch/x86/kvm/i8259.c
index f628234fbeca..3cece05e4ac4 100644
--- a/arch/x86/kvm/i8259.c
+++ b/arch/x86/kvm/i8259.c
@@ -575,6 +575,8 @@ struct kvm_pic *kvm_create_pic(struct kvm *kvm)
s->pics[1].elcr_mask = 0xde;
s->pics[0].pics_state = s;
s->pics[1].pics_state = s;
+ s->pics[0].isr_ack = 0xff;
+ s->pics[1].isr_ack = 0xff;
/*
* Initialize PIO device