iommu/amd: Flush upto last_bdf only
Fix amd_iommu_flush_dte_all() and amd_iommu_flush_tlb_all() to flush upto last_bdf only. Co-developed-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> Signed-off-by: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com> Signed-off-by: Vasant Hegde <vasant.hegde@amd.com> Link: https://lore.kernel.org/r/20220706113825.25582-29-vasant.hegde@amd.com Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
Родитель
401360ec98
Коммит
a3cf6ab357
|
@ -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);
|
||||
|
|
Загрузка…
Ссылка в новой задаче