On Thu, Oct 17, 2024 at 10:58:22PM -0700, Yi Liu wrote: > The iommu drivers are on the way to drop the remove_dev_pasid op by > extending the blocked_domain to support PASID. However, this cannot be > done in one shot. So far, the Intel iommu and the ARM SMMUv3 driver have > supported it, while the AMD iommu driver has not yet. During this > transition, the IOMMU core needs to support both ways to destroy the > attachment of device/PASID and domain. Let's just fix AMD? diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c index 9e25b92c68affa..806849cc997631 100644 --- a/drivers/iommu/amd/iommu.c +++ b/drivers/iommu/amd/iommu.c @@ -2437,10 +2437,18 @@ static int blocked_domain_attach_device(struct iommu_domain *domain, return 0; } +static int blocked_domain_set_dev_pasid(struct iommu_domain *domain, + struct device *dev, ioasid_t pasid) +{ + amd_iommu_remove_dev_pasid(dev, pasid, domain); + return 0; +} + static struct iommu_domain blocked_domain = { .type = IOMMU_DOMAIN_BLOCKED, .ops = &(const struct iommu_domain_ops) { .attach_dev = blocked_domain_attach_device, + .set_dev_pasid = blocked_domain_set_dev_pasid, } }; Jason