On 11/7/24 20:22, Yi Liu wrote:
This splits the preparation works of the iommu and the Intel iommu driver
out from the iommufd pasid attach/replace series. [1]
To support domain replacement, the definition of the set_dev_pasid op
needs to be enhanced. Meanwhile, the existing set_dev_pasid callbacks
should be extended as well to suit the new definition.
This series first passes the old domain to the set_dev_pasid op, and prepares
the Intel iommu set_dev_pasid callbacks (paging domain, identity domain, and
sva domain) for the new definition, add the missing set_dev_pasid callback
for the nested domain, makes ARM SMMUv3 set_dev_pasid op to suit the new
set_dev_pasid op definition, and in the end, claims the set_dev_pasid op support
domain replacement. The AMD set_dev_pasid callback is extended to fail if the
caller tries to do the domain replacement to meet the new definition of
set_dev_pasid op. AMD iommu driver would support it later per Vasant [2].
[1]https://lore.kernel.org/linux-iommu/20240412081516.31168-1-
yi.l.liu@xxxxxxxxx/
[2]https://lore.kernel.org/linux-iommu/fa9c4fc3-9365-465e-8926-
b4d2d6361b9c@xxxxxxx/
This is based on Joerg's next branch. Base commit: 75bc266cd1a6
v6:
- Fix a 0day compiling issue (Baolu)
- Refine the pasid replace helpers to compose new pasid entry and do a full
copy instead of setting each fields in the pasid entry from the pasid table.
This avoids transit the existing pasid entry multiple times. (Baolu)
Queued for v6.13. Thank you, Yi.
--
baolu