Messages in this thread | | | Date | Tue, 14 Jun 2022 15:44:21 +0800 | Subject | Re: [PATCH v2 10/12] iommu/vt-d: Fold __dmar_remove_one_dev_info() into its caller | From | Baolu Lu <> |
| |
On 2022/6/14 15:07, Tian, Kevin wrote: >> From: Lu Baolu<baolu.lu@linux.intel.com> >> Sent: Tuesday, June 14, 2022 10:52 AM >> >> Fold __dmar_remove_one_dev_info() into dmar_remove_one_dev_info() >> which >> is its only caller. Make the spin lock critical range only cover the >> device list change code and remove some unnecessary checks. >> >> Signed-off-by: Lu Baolu<baolu.lu@linux.intel.com> >> --- >> drivers/iommu/intel/iommu.c | 34 +++++++++------------------------- >> 1 file changed, 9 insertions(+), 25 deletions(-) >> >> diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c >> index af22690f44c8..8345e0c0824c 100644 >> --- a/drivers/iommu/intel/iommu.c >> +++ b/drivers/iommu/intel/iommu.c >> @@ -295,7 +295,6 @@ static LIST_HEAD(dmar_satc_units); >> static int g_num_of_iommus; >> >> static void dmar_remove_one_dev_info(struct device *dev); >> -static void __dmar_remove_one_dev_info(struct device_domain_info *info); >> >> int dmar_disabled = !IS_ENABLED(CONFIG_INTEL_IOMMU_DEFAULT_ON); >> int intel_iommu_sm = >> IS_ENABLED(CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON); >> @@ -4141,20 +4140,14 @@ static void domain_context_clear(struct >> device_domain_info *info) >> &domain_context_clear_one_cb, info); >> } >> >> -static void __dmar_remove_one_dev_info(struct device_domain_info *info) >> +static void dmar_remove_one_dev_info(struct device *dev) >> { >> - struct dmar_domain *domain; >> - struct intel_iommu *iommu; >> - >> - assert_spin_locked(&device_domain_lock); >> - >> - if (WARN_ON(!info)) >> - return; >> - >> - iommu = info->iommu; >> - domain = info->domain; >> + struct device_domain_info *info = dev_iommu_priv_get(dev); >> + struct dmar_domain *domain = info->domain; > this local variable is not required as there is just one reference > to info->domain.
Yes. It could be removed and use info->domain directly.
> > btw I didn't see info->domain is cleared in this path. Is it correct? >
It's better to clear here. I will make this change in my in-process blocking domain series.
But it doesn't cause any real problems because the Intel IOMMU driver supports default domain, hence the logic here is info->domain is replaced, but not cleared.
Best regards, baolu
| |