Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6a0dbcbe authored by Joerg Roedel's avatar Joerg Roedel
Browse files

x86/amd-iommu: Add a gneric version of amd_iommu_flush_all_devices



This patch adds a generic variant of
amd_iommu_flush_all_devices function which flushes only the
DTEs for a given protection domain.

Signed-off-by: default avatarJoerg Roedel <joerg.roedel@amd.com>
parent a6d41a40
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -481,13 +481,14 @@ void amd_iommu_flush_all_domains(void)
	}
}

void amd_iommu_flush_all_devices(void)
static void flush_devices_by_domain(struct protection_domain *domain)
{
	struct amd_iommu *iommu;
	int i;

	for (i = 0; i <= amd_iommu_last_bdf; ++i) {
		if (amd_iommu_pd_table[i] == NULL)
		if ((domain == NULL && amd_iommu_pd_table[i] == NULL) ||
		    (amd_iommu_pd_table[i] != domain))
			continue;

		iommu = amd_iommu_rlookup_table[i];
@@ -499,6 +500,11 @@ void amd_iommu_flush_all_devices(void)
	}
}

void amd_iommu_flush_all_devices(void)
{
	flush_devices_by_domain(NULL);
}

/****************************************************************************
 *
 * The functions below are used the create the page table mappings for