iommu/vt-d: Clean up unused PASID updating functions
authorFenghua Yu <fenghua.yu@intel.com>
Thu, 14 Oct 2021 05:38:37 +0000 (13:38 +0800)
committerJoerg Roedel <jroedel@suse.de>
Mon, 18 Oct 2021 10:31:48 +0000 (12:31 +0200)
update_pasid() and its call chain are currently unused in the tree because
Thomas disabled the ENQCMD feature. The feature will be re-enabled shortly
using a different approach and update_pasid() and its call chain will not
be used in the new approach.

Remove the useless functions.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Link: https://lore.kernel.org/r/20210920192349.2602141-1-fenghua.yu@intel.com
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20211014053839.727419-8-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
arch/x86/include/asm/fpu/api.h
drivers/iommu/intel/svm.c

index 23bef08a8388035e0c8723a6c54048bed8ddd206..ca4d0dee1ecd248df08e68312859205dfe3eacab 100644 (file)
@@ -106,6 +106,4 @@ extern int cpu_has_xfeatures(u64 xfeatures_mask, const char **feature_name);
  */
 #define PASID_DISABLED 0
 
-static inline void update_pasid(void) { }
-
 #endif /* _ASM_X86_FPU_API_H */
index 0c228787704f36a68e5503db7330e813af4b1dac..5b5d69b04fcc8d463f21141a7e497315038afc86 100644 (file)
@@ -505,21 +505,6 @@ out:
        return ret;
 }
 
-static void _load_pasid(void *unused)
-{
-       update_pasid();
-}
-
-static void load_pasid(struct mm_struct *mm, u32 pasid)
-{
-       mutex_lock(&mm->context.lock);
-
-       /* Update PASID MSR on all CPUs running the mm's tasks. */
-       on_each_cpu_mask(mm_cpumask(mm), _load_pasid, NULL, true);
-
-       mutex_unlock(&mm->context.lock);
-}
-
 static int intel_svm_alloc_pasid(struct device *dev, struct mm_struct *mm,
                                 unsigned int flags)
 {
@@ -614,10 +599,6 @@ static struct iommu_sva *intel_svm_bind_mm(struct intel_iommu *iommu,
        if (ret)
                goto free_sdev;
 
-       /* The newly allocated pasid is loaded to the mm. */
-       if (!(flags & SVM_FLAG_SUPERVISOR_MODE) && list_empty(&svm->devs))
-               load_pasid(mm, svm->pasid);
-
        list_add_rcu(&sdev->list, &svm->devs);
 success:
        return &sdev->sva;
@@ -670,11 +651,8 @@ static int intel_svm_unbind_mm(struct device *dev, u32 pasid)
                        kfree_rcu(sdev, rcu);
 
                        if (list_empty(&svm->devs)) {
-                               if (svm->notifier.ops) {
+                               if (svm->notifier.ops)
                                        mmu_notifier_unregister(&svm->notifier, mm);
-                                       /* Clear mm's pasid. */
-                                       load_pasid(mm, PASID_DISABLED);
-                               }
                                pasid_private_remove(svm->pasid);
                                /* We mandate that no page faults may be outstanding
                                 * for the PASID when intel_svm_unbind_mm() is called.