Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

KVM: vmx: move sync_pir_to_irr from apic_find_highest_irr to callers

parent 810e6def
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -410,8 +410,6 @@ static inline int apic_find_highest_irr(struct kvm_lapic *apic)
	if (!apic->irr_pending)
		return -1;

	if (apic->vcpu->arch.apicv_active)
		kvm_x86_ops->sync_pir_to_irr(apic->vcpu);
	result = apic_search_irr(apic);
	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)
{
	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)
		return -1;
	return highest_irr;
+3 −1
Original line number Diff line number Diff line
@@ -6822,10 +6822,12 @@ static int vcpu_enter_guest(struct kvm_vcpu *vcpu)
		 * Update architecture specific hints for APIC
		 * 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_lapic_find_highest_irr(vcpu));
		}
	}

	if (kvm_check_request(KVM_REQ_EVENT, vcpu) || req_int_win) {
		++vcpu->stat.req_event;