Re: [PATCH 1/3] KVM: APIC: remove unnecessary double checks on APIC existence

From: Radim KrÄmÃÅ
Date: Tue Feb 09 2016 - 08:55:14 EST


2016-02-08 17:15+0100, Paolo Bonzini:
> Usually the in-kernel APIC's existence is checked in the caller. Do not
> bother checking it again in lapic.c.
>
> Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
> ---
> diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
> static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode,
> @@ -1601,8 +1595,7 @@ static int apic_mmio_write(struct kvm_vcpu *vcpu, struct kvm_io_device *this,
>
> void kvm_lapic_set_eoi(struct kvm_vcpu *vcpu)
> {
> - if (kvm_vcpu_has_lapic(vcpu))
> - apic_reg_write(vcpu->arch.apic, APIC_EOI, 0);
> + apic_reg_write(vcpu->arch.apic, APIC_EOI, 0);

This is most likely going to bug on the following path:
handle_apic_access -> kvm_lapic_set_eoi

Before the change, handle_apic_access would just drop EOIs that should
have gone to user space ... I'm not sure if we tested it, or the path is
really never taken.