[PATCH v3 48/62] KVM: SVM: WARN if updating IRTE GA fields in IOMMU fails

Sean Christopherson
2025-06-11T22:48:19Z

WARN if updating GA information for an IRTE entry fails as modifying an
IRTE should only fail if KVM is buggy, e.g. has stale metadata, and
because returning an error that is always ignored is pointless.

Signed-off-by: Sean Christopherson <seanjc@google.com>
---
arch/x86/kvm/svm/avic.c | 9 +++------
1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/arch/x86/kvm/svm/avic.c b/arch/x86/kvm/svm/avic.c
index 24e07f075646..d1f7b35c1b02 100644
--- a/arch/x86/kvm/svm/avic.c
+++ b/arch/x86/kvm/svm/avic.c
@@ -834,9 +834,8 @@ int avic_pi_update_irte(struct kvm_kernel_irqfd *irqfd, struct kvm *kvm,
return irq_set_vcpu_affinity(host_irq, NULL);
}

-static inline int avic_update_iommu_vcpu_affinity(struct kvm_vcpu *vcpu, int cpu)
+static void avic_update_iommu_vcpu_affinity(struct kvm_vcpu *vcpu, int cpu)
{
- int ret = 0;
struct vcpu_svm *svm = to_svm(vcpu);
struct kvm_kernel_irqfd *irqfd;

@@ -847,12 +846,10 @@ static inline int avic_update_iommu_vcpu_affinity(struct kvm_vcpu *vcpu, int cpu
* interrupt remapping table entry targeting this vcpu.
*/
if (list_empty(&svm->ir_list))
- return 0;
+ return;

list_for_each_entry(irqfd, &svm->ir_list, vcpu_list)
- ret = amd_iommu_update_ga(cpu, irqfd->irq_bypass_data);
-
- return ret;
+ WARN_ON_ONCE(amd_iommu_update_ga(cpu, irqfd->irq_bypass_data));
}

void avic_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
--
2.50.0.rc1.591.g9c95f17f64-goog