From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail.linuxfoundation.org ([140.211.169.12]:38888 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S935055AbdEXHJ1 (ORCPT ); Wed, 24 May 2017 03:09:27 -0400 Date: Wed, 24 May 2017 09:09:16 +0200 From: Greg KH To: marc.zyngier@arm.com, cdall@linaro.org Cc: stable@vger.kernel.org, stable-commits@vger.kernel.org Subject: Re: Patch "KVM: arm/arm64: vgic-v2: Do not use Active+Pending state for a HW interrupt" has been added to the 4.9-stable tree Message-ID: <20170524070916.GD5785@kroah.com> References: <149555090678229@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <149555090678229@kroah.com> Sender: stable-owner@vger.kernel.org List-ID: On Tue, May 23, 2017 at 04:48:26PM +0200, gregkh@linuxfoundation.org wrote: > > This is a note to let you know that I've just added the patch titled > > KVM: arm/arm64: vgic-v2: Do not use Active+Pending state for a HW interrupt > > to the 4.9-stable tree which can be found at: > http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary > > The filename of the patch is: > kvm-arm-arm64-vgic-v2-do-not-use-active-pending-state-for-a-hw-interrupt.patch > and it can be found in the queue-4.9 subdirectory. > > If you, or anyone else, feels it should not be added to the stable tree, > please let know about it. > > > >From ddf42d068f8802de122bb7efdfcb3179336053f1 Mon Sep 17 00:00:00 2001 > From: Marc Zyngier > Date: Tue, 2 May 2017 14:30:39 +0100 > Subject: KVM: arm/arm64: vgic-v2: Do not use Active+Pending state for a HW interrupt > > From: Marc Zyngier > > commit ddf42d068f8802de122bb7efdfcb3179336053f1 upstream. > > When an interrupt is injected with the HW bit set (indicating that > deactivation should be propagated to the physical distributor), > special care must be taken so that we never mark the corresponding > LR with the Active+Pending state (as the pending state is kept in > the physycal distributor). > > Fixes: 140b086dd197 ("KVM: arm/arm64: vgic-new: Add GICv2 world switch backend") > Signed-off-by: Marc Zyngier > Reviewed-by: Christoffer Dall > Signed-off-by: Christoffer Dall > Signed-off-by: Greg Kroah-Hartman > > --- > virt/kvm/arm/vgic/vgic-v2.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > --- a/virt/kvm/arm/vgic/vgic-v2.c > +++ b/virt/kvm/arm/vgic/vgic-v2.c > @@ -168,6 +168,13 @@ void vgic_v2_populate_lr(struct kvm_vcpu > if (irq->hw) { > val |= GICH_LR_HW; > val |= irq->hwintid << GICH_LR_PHYSID_CPUID_SHIFT; > + /* > + * Never set pending+active on a HW interrupt, as the > + * pending state is kept at the physical distributor > + * level. > + */ > + if (irq->active && irq_is_pending(irq)) Same irq_is_pending() problem here for 4.9 as well, now dropped. thanks, greg k-h