Patch "KVM: arm/arm64: vgic: Don't flush/sync without a working vgic" has been added to the 4.8-stable tree
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.8-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.8 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
0099b7701f5296a758d9e6b945ec96f96847cc2fMon Sep 17 00:00:00 2001
From: Christoffer Dall <[email protected]>
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 <[email protected]>
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.
--- virt/kvm/arm/vgic/vgic.c | 6 ++++++ 1 file changed, 6 insertions(+)
virt/kvm/arm/vgic/vgic.c +6 -0
@@ -645,6 +645,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);
@@ -653,6 +656,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 [email protected] are
queue-4.8/kvm-arm64-require-in-kernel-irqchip-for-pmu-support.patch queue-4.8/kvm-arm-arm64-vgic-don-t-flush-sync-without-a-working-vgic.patch