* Patch "KVM: arm/arm64: vgic: Don't flush/sync without a working vgic" has been added to the 4.7-stable tree
@ 2016-10-14 9:59 gregkh
0 siblings, 0 replies; only message in thread
From: gregkh @ 2016-10-14 9:59 UTC (permalink / raw)
To: christoffer.dall, agraf, gregkh, marc.zyngier; +Cc: stable, stable-commits
This is a note to let you know that I've just added the patch titled
KVM: arm/arm64: vgic: Don't flush/sync without a working vgic
to the 4.7-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-don-t-flush-sync-without-a-working-vgic.patch
and it can be found in the queue-4.7 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
>From 0099b7701f5296a758d9e6b945ec96f96847cc2f Mon Sep 17 00:00:00 2001
From: Christoffer Dall <christoffer.dall@linaro.org>
Date: Tue, 27 Sep 2016 18:53:35 +0200
Subject: KVM: arm/arm64: vgic: Don't flush/sync without a working vgic
From: Christoffer Dall <christoffer.dall@linaro.org>
commit 0099b7701f5296a758d9e6b945ec96f96847cc2f upstream.
If the vgic hasn't been created and initialized, we shouldn't attempt to
look at its data structures or flush/sync anything to the GIC hardware.
This fixes an issue reported by Alexander Graf when using a userspace
irqchip.
Fixes: 0919e84c0fc1 ("KVM: arm/arm64: vgic-new: Add IRQ sync/flush framework")
Reported-by: Alexander Graf <agraf@suse.de>
Acked-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
virt/kvm/arm/vgic/vgic.c | 6 ++++++
1 file changed, 6 insertions(+)
--- a/virt/kvm/arm/vgic/vgic.c
+++ b/virt/kvm/arm/vgic/vgic.c
@@ -553,6 +553,9 @@ next:
/* Sync back the hardware VGIC state into our emulation after a guest's run. */
void kvm_vgic_sync_hwstate(struct kvm_vcpu *vcpu)
{
+ if (unlikely(!vgic_initialized(vcpu->kvm)))
+ return;
+
vgic_process_maintenance_interrupt(vcpu);
vgic_fold_lr_state(vcpu);
vgic_prune_ap_list(vcpu);
@@ -561,6 +564,9 @@ void kvm_vgic_sync_hwstate(struct kvm_vc
/* Flush our emulation state into the GIC hardware before entering the guest. */
void kvm_vgic_flush_hwstate(struct kvm_vcpu *vcpu)
{
+ if (unlikely(!vgic_initialized(vcpu->kvm)))
+ return;
+
spin_lock(&vcpu->arch.vgic_cpu.ap_list_lock);
vgic_flush_lr_state(vcpu);
spin_unlock(&vcpu->arch.vgic_cpu.ap_list_lock);
Patches currently in stable-queue which might be from christoffer.dall@linaro.org are
queue-4.7/kvm-arm64-require-in-kernel-irqchip-for-pmu-support.patch
queue-4.7/kvm-arm-arm64-vgic-don-t-flush-sync-without-a-working-vgic.patch
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-10-14 9:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-14 9:59 Patch "KVM: arm/arm64: vgic: Don't flush/sync without a working vgic" has been added to the 4.7-stable tree gregkh
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.