Re: [PATCH] KVM: SVM: allocate AVIC data structures based on kvm_amd moduleparameter

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

 



Paolo Bonzini <pbonzini@xxxxxxxxxx> writes:
>Even if APICv is disabled at startup, the backing page and ir_list need to be initialized in case they are needed later.  The only case in which this can be skipped is for userspace irqchip, and that must be done because avic_init_backing_page dereferences vcpu->arch.apic (which is NULL for userspace irqchip).
>
>Tested-by: rmuncrief@xxxxxxxxxxxxxxx
>Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=206579
>Signed-off-by: Paolo Bonzini <pbonzini@xxxxxxxxxx>
>---
> arch/x86/kvm/svm.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
>diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c index ad3f5b178a03..bd02526300ab 100644
>--- a/arch/x86/kvm/svm.c
>+++ b/arch/x86/kvm/svm.c
>@@ -2194,8 +2194,9 @@ static void svm_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event)  static int avic_init_vcpu(struct vcpu_svm *svm)  {
> 	int ret;
>+	struct kvm_vcpu *vcpu = &svm->vcpu;
> 
>-	if (!kvm_vcpu_apicv_active(&svm->vcpu))
>+	if (!avic || !irqchip_in_kernel(vcpu->kvm))
> 		return 0;
>
> 	ret = avic_init_backing_page(&svm->vcpu);
>--
>1.8.3.1
>

Reviewed-by: Miaohe Lin <linmiaohe@xxxxxxxxxx>




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux