KVM: vmx: move sync_pir_to_irr from apic_find_highest_irr to callers
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>zero-colors
parent
810e6defcc
commit
3d92789f69
|
@ -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)
|
||||||
|
|
||||||
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)
|
||||||
* 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;
|
||||||
|
|
Loading…
Reference in New Issue