From: Yang Zhang <yang.z.zhang@Intel.com>
Date: Thu, 11 Apr 2013 11:21:39 +0000 (+0800)
Subject: KVM: Force vmexit with virtual interrupt delivery
X-Git-Tag: firefly_0821_release~3680^2~569^2~51
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=f3bff6318fa0f54956b02ed451d9b120441006ea;p=firefly-linux-kernel-4.4.55.git

KVM: Force vmexit with virtual interrupt delivery

Need the EOI to track interrupt deliver status, so force vmexit
on EOI for rtc interrupt when enabling virtual interrupt delivery.

Signed-off-by: Yang Zhang <yang.z.zhang@Intel.com>
Reviewed-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
---

diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c
index 9d76baa78e89..76528fff252d 100644
--- a/virt/kvm/ioapic.c
+++ b/virt/kvm/ioapic.c
@@ -189,7 +189,7 @@ void kvm_ioapic_calculate_eoi_exitmap(struct kvm_vcpu *vcpu,
 		if (!e->fields.mask &&
 			(e->fields.trig_mode == IOAPIC_LEVEL_TRIG ||
 			 kvm_irq_has_notifier(ioapic->kvm, KVM_IRQCHIP_IOAPIC,
-				 index))) {
+				 index) || index == RTC_GSI)) {
 			if (kvm_apic_match_dest(vcpu, NULL, 0,
 				e->fields.dest_id, e->fields.dest_mode))
 				__set_bit(e->fields.vector, (unsigned long *)eoi_exit_bitmap);