aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/x86.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r--arch/x86/kvm/x86.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index eed32283d22c..9c69337a3d61 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -6301,15 +6301,16 @@ static void vcpu_scan_ioapic(struct kvm_vcpu *vcpu)
6301 if (!kvm_apic_hw_enabled(vcpu->arch.apic)) 6301 if (!kvm_apic_hw_enabled(vcpu->arch.apic))
6302 return; 6302 return;
6303 6303
6304 memset(vcpu->arch.eoi_exit_bitmap, 0, 256 / 8); 6304 bitmap_zero(vcpu->arch.ioapic_handled_vectors, 256);
6305 6305
6306 if (irqchip_split(vcpu->kvm)) 6306 if (irqchip_split(vcpu->kvm))
6307 kvm_scan_ioapic_routes(vcpu, vcpu->arch.eoi_exit_bitmap); 6307 kvm_scan_ioapic_routes(vcpu, vcpu->arch.ioapic_handled_vectors);
6308 else { 6308 else {
6309 kvm_x86_ops->sync_pir_to_irr(vcpu); 6309 kvm_x86_ops->sync_pir_to_irr(vcpu);
6310 kvm_ioapic_scan_entry(vcpu, vcpu->arch.eoi_exit_bitmap); 6310 kvm_ioapic_scan_entry(vcpu, vcpu->arch.ioapic_handled_vectors);
6311 } 6311 }
6312 kvm_x86_ops->load_eoi_exitmap(vcpu); 6312 kvm_x86_ops->load_eoi_exitmap(vcpu,
6313 (u64 *)vcpu->arch.ioapic_handled_vectors);
6313} 6314}
6314 6315
6315static void kvm_vcpu_flush_tlb(struct kvm_vcpu *vcpu) 6316static void kvm_vcpu_flush_tlb(struct kvm_vcpu *vcpu)
@@ -6417,7 +6418,7 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
6417 if (kvm_check_request(KVM_REQ_IOAPIC_EOI_EXIT, vcpu)) { 6418 if (kvm_check_request(KVM_REQ_IOAPIC_EOI_EXIT, vcpu)) {
6418 BUG_ON(vcpu->arch.pending_ioapic_eoi > 255); 6419 BUG_ON(vcpu->arch.pending_ioapic_eoi > 255);
6419 if (test_bit(vcpu->arch.pending_ioapic_eoi, 6420 if (test_bit(vcpu->arch.pending_ioapic_eoi,
6420 (void *) vcpu->arch.eoi_exit_bitmap)) { 6421 vcpu->arch.ioapic_handled_vectors)) {
6421 vcpu->run->exit_reason = KVM_EXIT_IOAPIC_EOI; 6422 vcpu->run->exit_reason = KVM_EXIT_IOAPIC_EOI;
6422 vcpu->run->eoi.vector = 6423 vcpu->run->eoi.vector =
6423 vcpu->arch.pending_ioapic_eoi; 6424 vcpu->arch.pending_ioapic_eoi;