KVM: i8259: initialize isr_ack
authorAvi Kivity <avi@redhat.com>
Thu, 31 Mar 2011 18:58:55 +0000 (11:58 -0700)
committerAK <andi@firstfloor.org>
Thu, 31 Mar 2011 18:58:55 +0000 (11:58 -0700)
commit a0272630bb594b4eac03a79e77957df7dad8eade upstream.

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>
Signed-off-by: Andi Kleen <ak@linux.intel.com>
arch/x86/kvm/i8259.c

index 93825ff3338fae9940b612c0814f9a3864cbd213..8a3324668cac049df1f4b29a85fe00e2d4c25b81 100644 (file)
@@ -553,6 +553,8 @@ struct kvm_pic *kvm_create_pic(struct kvm *kvm)
        s->irq_request_opaque = kvm;
        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