From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Tosatti Subject: [patch 1/2] KVM: x86: fix lapic_timer_int_injected with APIC-v Date: Mon, 02 Feb 2015 15:26:08 -0200 Message-ID: <20150202172613.630983278@redhat.com> References: <20150202172607.625424844@redhat.com> Cc: kvm@vger.kernel.org, Marcelo Tosatti To: Paolo Bonzini , Radim Krcmar Return-path: Received: from mx1.redhat.com ([209.132.183.28]:56196 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752377AbbBBR1J (ORCPT ); Mon, 2 Feb 2015 12:27:09 -0500 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t12HR95o000437 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Mon, 2 Feb 2015 12:27:09 -0500 Content-Disposition: inline; filename=lapic-advancement-fix-APICv Sender: kvm-owner@vger.kernel.org List-ID: With APICv, LAPIC timer interrupt is always delivered via IRR: apic_find_highest_irr syncs PIR to IRR. Signed-off-by: Marcelo Tosatti --- arch/x86/kvm/lapic.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) Index: kvm/arch/x86/kvm/lapic.c =================================================================== --- kvm.orig/arch/x86/kvm/lapic.c 2015-02-02 14:57:19.903066983 -0200 +++ kvm/arch/x86/kvm/lapic.c 2015-02-02 15:25:40.197299923 -0200 @@ -1086,13 +1086,13 @@ if (kvm_apic_hw_enabled(apic)) { int vec = reg & APIC_VECTOR_MASK; + void *bitmap = apic->regs + APIC_ISR; - if (kvm_x86_ops->test_posted_interrupt) - return kvm_x86_ops->test_posted_interrupt(vcpu, vec); - else { - if (apic_test_vector(vec, apic->regs + APIC_ISR)) - return true; - } + if (kvm_x86_ops->deliver_posted_interrupt) + bitmap = apic->regs + APIC_IRR; + + if (apic_test_vector(vec, bitmap)) + return true; } return false; }