Fix amd_iommu_flush_dte_all() and amd_iommu_flush_tlb_all() to flush
upto last_bdf only.

Co-developed-by: Suravee Suthikulpanit <suravee.suthikulpa...@amd.com>
Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpa...@amd.com>
Signed-off-by: Vasant Hegde <vasant.he...@amd.com>
---
 drivers/iommu/amd/iommu.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index 5976038d48a3..40415e477853 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -1191,8 +1191,9 @@ static int iommu_flush_dte(struct amd_iommu *iommu, u16 
devid)
 static void amd_iommu_flush_dte_all(struct amd_iommu *iommu)
 {
        u32 devid;
+       u16 last_bdf = iommu->pci_seg->last_bdf;
 
-       for (devid = 0; devid <= 0xffff; ++devid)
+       for (devid = 0; devid <= last_bdf; ++devid)
                iommu_flush_dte(iommu, devid);
 
        iommu_completion_wait(iommu);
@@ -1205,8 +1206,9 @@ static void amd_iommu_flush_dte_all(struct amd_iommu 
*iommu)
 static void amd_iommu_flush_tlb_all(struct amd_iommu *iommu)
 {
        u32 dom_id;
+       u16 last_bdf = iommu->pci_seg->last_bdf;
 
-       for (dom_id = 0; dom_id <= 0xffff; ++dom_id) {
+       for (dom_id = 0; dom_id <= last_bdf; ++dom_id) {
                struct iommu_cmd cmd;
                build_inv_iommu_pages(&cmd, 0, CMD_INV_IOMMU_ALL_PAGES_ADDRESS,
                                      dom_id, 1);
@@ -1249,8 +1251,9 @@ static void iommu_flush_irt(struct amd_iommu *iommu, u16 
devid)
 static void amd_iommu_flush_irt_all(struct amd_iommu *iommu)
 {
        u32 devid;
+       u16 last_bdf = iommu->pci_seg->last_bdf;
 
-       for (devid = 0; devid <= MAX_DEV_TABLE_ENTRIES; devid++)
+       for (devid = 0; devid <= last_bdf; devid++)
                iommu_flush_irt(iommu, devid);
 
        iommu_completion_wait(iommu);
-- 
2.27.0

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to