]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: SVM: WARN if an invalid posted interrupt IRTE entry is added
authorSean Christopherson <seanjc@google.com>
Fri, 4 Apr 2025 19:38:22 +0000 (12:38 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 24 Apr 2025 13:52:31 +0000 (09:52 -0400)
Now that the AMD IOMMU doesn't signal success incorrectly, WARN if KVM
attempts to track an AMD IRTE entry without metadata.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-ID: <20250404193923.1413163-8-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/svm/avic.c

index 8e09f6ae98fd997cda6c5ae15325073f5efa91da..7338879d1c0c48098e37b6344b16d96eaba5b2c1 100644 (file)
@@ -796,12 +796,15 @@ static int svm_ir_list_add(struct vcpu_svm *svm, struct amd_iommu_pi_data *pi)
        struct amd_svm_iommu_ir *ir;
        u64 entry;
 
+       if (WARN_ON_ONCE(!pi->ir_data))
+               return -EINVAL;
+
        /**
         * In some cases, the existing irte is updated and re-set,
         * so we need to check here if it's already been * added
         * to the ir_list.
         */
-       if (pi->ir_data && (pi->prev_ga_tag != 0)) {
+       if (pi->prev_ga_tag) {
                struct kvm *kvm = svm->vcpu.kvm;
                u32 vcpu_id = AVIC_GATAG_TO_VCPUID(pi->prev_ga_tag);
                struct kvm_vcpu *prev_vcpu = kvm_get_vcpu_by_id(kvm, vcpu_id);