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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, May 24, 2017 at 08:55:35AM +0100, Marc Zyngier wrote:
> On 24/05/17 08:09, Greg KH wrote:
> > On Tue, May 23, 2017 at 04:48:26PM +0200, gregkh@xxxxxxxxxxxxxxxxxxx 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 <stable@xxxxxxxxxxxxxxx> know about it.
> >>
> >>
> >> >From ddf42d068f8802de122bb7efdfcb3179336053f1 Mon Sep 17 00:00:00 2001
> >> From: Marc Zyngier <marc.zyngier@xxxxxxx>
> >> 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 <marc.zyngier@xxxxxxx>
> >>
> >> 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 <marc.zyngier@xxxxxxx>
> >> Reviewed-by: Christoffer Dall <cdall@xxxxxxxxxx>
> >> Signed-off-by: Christoffer Dall <cdall@xxxxxxxxxx>
> >> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> >>
> >> ---
> >>  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.
> 
> Updated patch:

thanks, now applied.

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]