On Thu, Jul 25, 2013 at 09:58:45AM +0200, Jan Kiszka wrote: > If posted interrupts are enabled, we can no longer track if an IRQ was > coalesced based on IRR. So drop this logic also from the classic > software path and simplify apic_test_and_set_irr to apic_set_irr. > > Signed-off-by: Jan Kiszka <jan.kiszka@xxxxxxxxxxx> Applied both, thanks. > --- > arch/x86/kvm/lapic.c | 23 ++++++++--------------- > 1 files changed, 8 insertions(+), 15 deletions(-) > > diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c > index afc1124..9dc3650 100644 > --- a/arch/x86/kvm/lapic.c > +++ b/arch/x86/kvm/lapic.c > @@ -331,10 +331,10 @@ void kvm_apic_update_irr(struct kvm_vcpu *vcpu, u32 *pir) > } > EXPORT_SYMBOL_GPL(kvm_apic_update_irr); > > -static inline int apic_test_and_set_irr(int vec, struct kvm_lapic *apic) > +static inline void apic_set_irr(int vec, struct kvm_lapic *apic) > { > apic->irr_pending = true; > - return apic_test_and_set_vector(vec, apic->regs + APIC_IRR); > + apic_set_vector(vec, apic->regs + APIC_IRR); > } > > static inline int apic_search_irr(struct kvm_lapic *apic) > @@ -681,28 +681,21 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, > if (unlikely(!apic_enabled(apic))) > break; > > + result = 1; > + > if (dest_map) > __set_bit(vcpu->vcpu_id, dest_map); > > - if (kvm_x86_ops->deliver_posted_interrupt) { > - result = 1; > + if (kvm_x86_ops->deliver_posted_interrupt) > kvm_x86_ops->deliver_posted_interrupt(vcpu, vector); > - } else { > - result = !apic_test_and_set_irr(vector, apic); > - > - if (!result) { > - if (trig_mode) > - apic_debug("level trig mode repeatedly " > - "for vector %d", vector); > - goto out; > - } > + else { > + apic_set_irr(vector, apic); > > kvm_make_request(KVM_REQ_EVENT, vcpu); > kvm_vcpu_kick(vcpu); > } > -out: > trace_kvm_apic_accept_irq(vcpu->vcpu_id, delivery_mode, > - trig_mode, vector, !result); > + trig_mode, vector, false); > break; > > case APIC_DM_REMRD: > -- > 1.7.3.4 -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html