iommu/vt-d: Remove treatment for revoking PASIDs with pending page faults
authorTina Zhang <tina.zhang@intel.com>
Tue, 27 Feb 2024 02:14:37 +0000 (10:14 +0800)
committerJoerg Roedel <jroedel@suse.de>
Fri, 1 Mar 2024 12:51:19 +0000 (13:51 +0100)
Commit 2f26e0a9c986 ("iommu/vt-d: Add basic SVM PASID support") added a
special treatment to mandate that no page faults may be outstanding for
the PASID after intel_svm_unbind_mm() is called, as the PASID will be
released and reused after unbind.

This is unnecessary anymore as no outstanding page faults have been
ensured in the driver's remove_dev_pasid path:

- Tear down the pasid entry, which guarantees that new page faults for
  the PASID will be rejected by the iommu hardware.
- All outstanding page faults have been responded to.
- All hardware pending faults are drained in intel_drain_pasid_prq().

Remove this unnecessary code.

Signed-off-by: Tina Zhang <tina.zhang@intel.com>
Link: https://lore.kernel.org/r/20240219125723.1645703-2-tina.zhang@intel.com
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/intel/svm.c

index 40edd282903fbe7c804512819aa95c3a1ae9d43e..a815362c8e600765cdad41bf998ec9c387439b62 100644 (file)
@@ -408,13 +408,6 @@ void intel_svm_remove_dev_pasid(struct device *dev, u32 pasid)
                        if (svm->notifier.ops)
                                mmu_notifier_unregister(&svm->notifier, mm);
                        pasid_private_remove(svm->pasid);
-                       /*
-                        * We mandate that no page faults may be outstanding
-                        * for the PASID when intel_svm_unbind_mm() is called.
-                        * If that is not obeyed, subtle errors will happen.
-                        * Let's make them less subtle...
-                        */
-                       memset(svm, 0x6b, sizeof(*svm));
                        kfree(svm);
                }
        }