[PATCH v4 0/7] Support attaching PASID to the blocked_domain

Yi Liu
2024-11-08T12:04:31Z

During the review of iommufd pasid series, Kevin and Jason suggested
attaching PASID to the blocked domain hence replacing the usage of
remove_dev_pasid() op [1]. This makes sense as it makes the PASID path
aligned with the RID path which attaches the RID to the blocked_domain
when it is to be blocked. To do it, it requires passing the old domain
to the iommu driver. This has been done in [2].

This series makes the Intel iommu driver, ARM SMMUv3 driver and AMD iommu
driver support attaching PASID to the blocked domain. And in the end remove
the remove_dev_pasid op from iommu_ops.

[1] https://lore.kernel.org/linux-iommu/20240816130202.GB2032816@nvidia.com/
[2] https://lore.kernel.org/linux-iommu/20241104131842.13303-1-yi.l.liu@intel.com/

v4:
- Remove unnecessary braces in patch 02 (Vasant)
- Minor tweaks to patch 01 and 03 (Kevin)
- Add r-b tags from Jason, Vasant, Kevin

v3: https://lore.kernel.org/linux-iommu/20241104132033.14027-1-yi.l.liu@intel.com/
- Add a patch to check remove_dev_pasid() in iommu_attach_device_pasid()
- Split patch 01 of v2 into two patches, drop the r-b of this patch due the
split.
- Add AMD iommu blocked domain pasid support (Jason)
- Remove the remove_dev_pasid op as all the iommu drivers that support pasid
attach have supported attaching pasid to blocked domain.

v2: https://lore.kernel.org/linux-iommu/20241018055824.24880-1-yi.l.liu@intel.com/#t
- Add Kevin's r-b
- Adjust the order of patch 03 of v1, it should be the first patch (Baolu)

v1: https://lore.kernel.org/linux-iommu/20240912130653.11028-1-yi.l.liu@intel.com/

Regards,
Yi Liu

Jason Gunthorpe (1):
iommu/arm-smmu-v3: Make the blocked domain support PASID

Yi Liu (6):
iommu: Prevent pasid attach if no ops->remove_dev_pasid
iommu: Consolidate the ops->remove_dev_pasid usage into a helper
iommu: Detaching pasid by attaching to the blocked_domain
iommu/vt-d: Make the blocked domain support PASID
iommu/amd: Make the blocked domain support PASID
iommu: Remove the remove_dev_pasid op

drivers/iommu/amd/iommu.c | 10 +++++++-
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 12 ++++-----
drivers/iommu/intel/iommu.c | 15 ++++++++---
drivers/iommu/iommu.c | 28 +++++++++++++--------
include/linux/iommu.h | 5 ----
5 files changed, 44 insertions(+), 26 deletions(-)

--
2.34.1