Commit 3d92789f authored by Paolo Bonzini's avatar Paolo Bonzini

KVM: vmx: move sync_pir_to_irr from apic_find_highest_irr to callers

Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 810e6def
...@@ -410,8 +410,6 @@ static inline int apic_find_highest_irr(struct kvm_lapic *apic) ...@@ -410,8 +410,6 @@ static inline int apic_find_highest_irr(struct kvm_lapic *apic)
if (!apic->irr_pending) if (!apic->irr_pending)
return -1; return -1;
if (apic->vcpu->arch.apicv_active)
kvm_x86_ops->sync_pir_to_irr(apic->vcpu);
result = apic_search_irr(apic); result = apic_search_irr(apic);
ASSERT(result == -1 || result >= 16); ASSERT(result == -1 || result >= 16);
...@@ -581,7 +579,10 @@ static void pv_eoi_clr_pending(struct kvm_vcpu *vcpu) ...@@ -581,7 +579,10 @@ static void pv_eoi_clr_pending(struct kvm_vcpu *vcpu)
static int apic_has_interrupt_for_ppr(struct kvm_lapic *apic, u32 ppr) static int apic_has_interrupt_for_ppr(struct kvm_lapic *apic, u32 ppr)
{ {
int highest_irr = apic_find_highest_irr(apic); int highest_irr;
if (apic->vcpu->arch.apicv_active)
kvm_x86_ops->sync_pir_to_irr(apic->vcpu);
highest_irr = apic_find_highest_irr(apic);
if (highest_irr == -1 || (highest_irr & 0xF0) <= ppr) if (highest_irr == -1 || (highest_irr & 0xF0) <= ppr)
return -1; return -1;
return highest_irr; return highest_irr;
......
...@@ -6822,10 +6822,12 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu) ...@@ -6822,10 +6822,12 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
* Update architecture specific hints for APIC * Update architecture specific hints for APIC
* virtual interrupt delivery. * virtual interrupt delivery.
*/ */
if (vcpu->arch.apicv_active) if (vcpu->arch.apicv_active) {
kvm_x86_ops->sync_pir_to_irr(vcpu);
kvm_x86_ops->hwapic_irr_update(vcpu, kvm_x86_ops->hwapic_irr_update(vcpu,
kvm_lapic_find_highest_irr(vcpu)); kvm_lapic_find_highest_irr(vcpu));
} }
}
if (kvm_check_request(KVM_REQ_EVENT, vcpu) || req_int_win) { if (kvm_check_request(KVM_REQ_EVENT, vcpu) || req_int_win) {
++vcpu->stat.req_event; ++vcpu->stat.req_event;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment