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 <[email protected]>
> ---
> 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.

Reply via email to