summary refs log tree commit diff
path: root/arch/x86/kvm/ioapic.h
diff options
context:
space:
mode:
authorWincy Van <fanwenyi0529@gmail.com>2014-12-24 11:14:29 +0800
committerMarcelo Tosatti <mtosatti@redhat.com>2015-03-10 10:37:43 -0300
commit5bda6eed2e3626f40f2602a8fed72007f1fafaf8 (patch)
treeddea5207022bd6dbf8e974dcbb6673374bc05106 /arch/x86/kvm/ioapic.h
parentae548c5c806497b3495019f550f93dee03f6c15a (diff)
downloadlinux-5bda6eed2e3626f40f2602a8fed72007f1fafaf8.tar.gz
KVM: ioapic: Record edge-triggered interrupts delivery status
This patch fixes the bug discussed in
https://www.mail-archive.com/kvm@vger.kernel.org/msg109813.html

This patch uses a new field named irr_delivered to record the
delivery status of edge-triggered interrupts, and clears the
delivered interrupts in kvm_get_ioapic. So it has the same effect
of commit 0bc830b05c667218d703f2026ec866c49df974fc
("KVM: ioapic: clear IRR for edge-triggered interrupts at delivery")
while avoids the bug of Windows guests.

Signed-off-by: Wincy Van <fanwenyi0529@gmail.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/kvm/ioapic.h')
-rw-r--r--arch/x86/kvm/ioapic.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kvm/ioapic.h b/arch/x86/kvm/ioapic.h
index c2e36d934af4..38d8402ea65c 100644
--- a/arch/x86/kvm/ioapic.h
+++ b/arch/x86/kvm/ioapic.h
@@ -77,6 +77,7 @@ struct kvm_ioapic {
 	struct rtc_status rtc_status;
 	struct delayed_work eoi_inject;
 	u32 irq_eoi[IOAPIC_NUM_PINS];
+	u32 irr_delivered;
 };
 
 #ifdef DEBUG