Commit 00ecd540 authored by Fenghua Yu's avatar Fenghua Yu Committed by Joerg Roedel
Browse files

iommu/vt-d: Clean up unused PASID updating functions



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: default avatarFenghua Yu <fenghua.yu@intel.com>
Reviewed-by: default avatarTony Luck <tony.luck@intel.com>
Link: https://lore.kernel.org/r/20210920192349.2602141-1-fenghua.yu@intel.com


Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20211014053839.727419-8-baolu.lu@linux.intel.com


Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
parent 94f797ad
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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 */
+1 −23
Original line number Diff line number Diff line
@@ -505,21 +505,6 @@ int intel_svm_unbind_gpasid(struct device *dev, u32 pasid)
	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.