KVM: SVM: Allocate IR data using atomic allocation

Allocate SVM's interrupt remapping metadata using GFP_ATOMIC as
svm_ir_list_add() is called with IRQs are disabled and irqfs.lock held
when kvm_irq_routing_update() reacts to GSI routing changes.

Fixes: 411b44ba80ab ("svm: Implements update_pi_irte hook to setup posted interrupt")
Cc: stable@vger.kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-ID: <20250404193923.1413163-2-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

authored by Sean Christopherson and committed by Paolo Bonzini 7537deda 6560aff9

+1 -1
+1 -1
arch/x86/kvm/svm/avic.c
··· 820 * Allocating new amd_iommu_pi_data, which will get 821 * add to the per-vcpu ir_list. 822 */ 823 - ir = kzalloc(sizeof(struct amd_svm_iommu_ir), GFP_KERNEL_ACCOUNT); 824 if (!ir) { 825 ret = -ENOMEM; 826 goto out;
··· 820 * Allocating new amd_iommu_pi_data, which will get 821 * add to the per-vcpu ir_list. 822 */ 823 + ir = kzalloc(sizeof(struct amd_svm_iommu_ir), GFP_ATOMIC | __GFP_ACCOUNT); 824 if (!ir) { 825 ret = -ENOMEM; 826 goto out;