• Suravee Suthikulpanit's avatar
    iommu/amd: Fix IOMMU AVIC not properly update the is_run bit in IRTE · 730ad0ed
    Suravee Suthikulpanit authored
    Commit b9c6ff94 ("iommu/amd: Re-factor guest virtual APIC
    (de-)activation code") accidentally left out the ir_data pointer when
    calling modity_irte_ga(), which causes the function amd_iommu_update_ga()
    to return prematurely due to struct amd_ir_data.ref is NULL and
    the "is_run" bit of IRTE does not get updated properly.
    
    This results in bad I/O performance since IOMMU AVIC always generate GA Log
    entry and notify IOMMU driver and KVM when it receives interrupt from the
    PCI pass-through device instead of directly inject interrupt to the vCPU.
    
    Fixes by passing ir_data when calling modify_irte_ga() as done previously.
    
    Fixes: b9c6ff94 ("iommu/amd: Re-factor guest virtual APIC (de-)activation code")
    Signed-off-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
    Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
    730ad0ed
amd_iommu.c 92.6 KB