]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
iommu/amd: Fix IOMMU AVIC not properly update the is_run bit in IRTE
authorSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Thu, 12 Mar 2020 10:18:39 +0000 (05:18 -0500)
committerJoerg Roedel <jroedel@suse.de>
Sat, 14 Mar 2020 08:39:11 +0000 (09:39 +0100)
commit730ad0ede130015a773229573559e97ba0943065
tree0ed7aac1335bb87fce1e1efe4f478c6c5ef492e6
parentda72a379b2ec0bad3eb265787f7008bead0b040c
iommu/amd: Fix IOMMU AVIC not properly update the is_run bit in IRTE

Commit b9c6ff94e43a ("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: b9c6ff94e43a ("iommu/amd: Re-factor guest virtual APIC (de-)activation code")
Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd_iommu.c