diff options
Diffstat (limited to 'arch/x86/kvm/x86.c')
-rw-r--r-- | arch/x86/kvm/x86.c | 11 |
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 | ||
6315 | static void kvm_vcpu_flush_tlb(struct kvm_vcpu *vcpu) | 6316 | static 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; |