Hi BaoLu, On Sun, 1 May 2022 19:24:33 +0800, Lu Baolu <baolu...@linux.intel.com> wrote:
> The IOMMU force snooping capability is not required to be consistent > among all the IOMMUs anymore. Remove force snooping capability check > in the IOMMU hot-add path and domain_update_iommu_snooping() becomes > a dead code now. > > Signed-off-by: Lu Baolu <baolu...@linux.intel.com> > --- > drivers/iommu/intel/iommu.c | 34 +--------------------------------- > 1 file changed, 1 insertion(+), 33 deletions(-) > > diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c > index 3c1c228f9031..d5808495eb64 100644 > --- a/drivers/iommu/intel/iommu.c > +++ b/drivers/iommu/intel/iommu.c > @@ -533,33 +533,6 @@ static void domain_update_iommu_coherency(struct > dmar_domain *domain) rcu_read_unlock(); > } > > -static bool domain_update_iommu_snooping(struct intel_iommu *skip) > -{ > - struct dmar_drhd_unit *drhd; > - struct intel_iommu *iommu; > - bool ret = true; > - > - rcu_read_lock(); > - for_each_active_iommu(iommu, drhd) { > - if (iommu != skip) { > - /* > - * If the hardware is operating in the scalable > mode, > - * the snooping control is always supported > since we > - * always set PASID-table-entry.PGSNP bit if the > domain > - * is managed outside (UNMANAGED). > - */ > - if (!sm_supported(iommu) && > - !ecap_sc_support(iommu->ecap)) { > - ret = false; > - break; > - } > - } > - } > - rcu_read_unlock(); > - > - return ret; > -} > - > static int domain_update_iommu_superpage(struct dmar_domain *domain, > struct intel_iommu *skip) > { > @@ -3593,12 +3566,7 @@ static int intel_iommu_add(struct dmar_drhd_unit > *dmaru) iommu->name); > return -ENXIO; > } > - if (!ecap_sc_support(iommu->ecap) && > - domain_update_iommu_snooping(iommu)) { > - pr_warn("%s: Doesn't support snooping.\n", > - iommu->name); > - return -ENXIO; > - } > + Maybe I missed earlier patches, so this bit can also be deleted? struct dmar_domain { u8 iommu_snooping: 1; /* indicate snooping control feature */ > sp = domain_update_iommu_superpage(NULL, iommu) - 1; > if (sp >= 0 && !(cap_super_page_val(iommu->cap) & (1 << sp))) { > pr_warn("%s: Doesn't support large page.\n", Thanks, Jacob _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu