iommu/vt-d: Remove domain parameter for intel_pasid_setup_dirty_tracking()
The only usage of input @domain is to get the domain id (DID) to flush cache after setting dirty tracking. However, DID can be obtained from the pasid entry. So no need to pass in domain. This can make this helper cleaner when adding the missing dirty tracking for the parent domain, which needs to use the DID of nested domain. Signed-off-by: Yi Liu <yi.l.liu@intel.com> Reviewed-by: Joao Martins <joao.m.martins@oracle.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Link: https://lore.kernel.org/r/20240208082307.15759-7-yi.l.liu@intel.com Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
5e54e861f1
commit
56ecaf6c58
@ -4741,8 +4741,7 @@ static int intel_iommu_set_dirty_tracking(struct iommu_domain *domain,
|
||||
goto out_unlock;
|
||||
|
||||
list_for_each_entry(info, &dmar_domain->devices, link) {
|
||||
ret = intel_pasid_setup_dirty_tracking(info->iommu,
|
||||
info->domain, info->dev,
|
||||
ret = intel_pasid_setup_dirty_tracking(info->iommu, info->dev,
|
||||
IOMMU_NO_PASID, enable);
|
||||
if (ret)
|
||||
goto err_unwind;
|
||||
@ -4756,8 +4755,8 @@ out_unlock:
|
||||
|
||||
err_unwind:
|
||||
list_for_each_entry(info, &dmar_domain->devices, link)
|
||||
intel_pasid_setup_dirty_tracking(info->iommu, dmar_domain,
|
||||
info->dev, IOMMU_NO_PASID,
|
||||
intel_pasid_setup_dirty_tracking(info->iommu, info->dev,
|
||||
IOMMU_NO_PASID,
|
||||
dmar_domain->dirty_tracking);
|
||||
spin_unlock(&dmar_domain->lock);
|
||||
return ret;
|
||||
|
@ -428,7 +428,6 @@ int intel_pasid_setup_second_level(struct intel_iommu *iommu,
|
||||
* Set up dirty tracking on a second only or nested translation type.
|
||||
*/
|
||||
int intel_pasid_setup_dirty_tracking(struct intel_iommu *iommu,
|
||||
struct dmar_domain *domain,
|
||||
struct device *dev, u32 pasid,
|
||||
bool enabled)
|
||||
{
|
||||
@ -445,7 +444,7 @@ int intel_pasid_setup_dirty_tracking(struct intel_iommu *iommu,
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
did = domain_id_iommu(domain, iommu);
|
||||
did = pasid_get_domain_id(pte);
|
||||
pgtt = pasid_pte_get_pgtt(pte);
|
||||
if (pgtt != PASID_ENTRY_PGTT_SL_ONLY &&
|
||||
pgtt != PASID_ENTRY_PGTT_NESTED) {
|
||||
|
@ -307,7 +307,6 @@ int intel_pasid_setup_second_level(struct intel_iommu *iommu,
|
||||
struct dmar_domain *domain,
|
||||
struct device *dev, u32 pasid);
|
||||
int intel_pasid_setup_dirty_tracking(struct intel_iommu *iommu,
|
||||
struct dmar_domain *domain,
|
||||
struct device *dev, u32 pasid,
|
||||
bool enabled);
|
||||
int intel_pasid_setup_pass_through(struct intel_iommu *iommu,
|
||||
|
Loading…
x
Reference in New Issue
Block a user