On Sun, Aug 31, 2025 at 04:31:56PM -0700, Nicolin Chen wrote:
> The IOMMU core attaches each device to a default domain on probe(). Then,
> every new "attach" operation has a fundamental meaning of two-fold:
>  - detach from its currently attached (old) domain
>  - attach to a given new domain
> 
> Modern IOMMU drivers following this pattern usually want to clean up the
> things related to the old domain, so they call iommu_get_domain_for_dev()
> to fetch the old domain.
> 
> Pass in the old domain pointer from the core to drivers, aligning with the
> set_dev_pasid op that passes in already.
> 
> Ensure all low-level attach fcuntions in the core can forward the correct
> old domain pointer. Thus, rework those functions as well.
> 
> Suggested-by: Jason Gunthorpe <[email protected]>
> Signed-off-by: Nicolin Chen <[email protected]>
> ---
>  include/linux/iommu.h                         |  3 +-
>  drivers/iommu/amd/iommu.c                     | 11 ++++---
>  drivers/iommu/apple-dart.c                    |  9 +++--
>  .../arm/arm-smmu-v3/arm-smmu-v3-iommufd.c     |  5 +--
>  drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c   | 33 ++++++++++++-------
>  drivers/iommu/arm/arm-smmu/arm-smmu.c         |  9 +++--
>  drivers/iommu/arm/arm-smmu/qcom_iommu.c       | 11 ++++---
>  drivers/iommu/exynos-iommu.c                  |  6 ++--
>  drivers/iommu/fsl_pamu_domain.c               | 12 +++----
>  drivers/iommu/intel/iommu.c                   | 10 ++++--
>  drivers/iommu/intel/nested.c                  |  2 +-
>  drivers/iommu/iommu.c                         | 26 +++++++++------
>  drivers/iommu/iommufd/selftest.c              |  2 +-
>  drivers/iommu/ipmmu-vmsa.c                    | 10 +++---
>  drivers/iommu/msm_iommu.c                     |  8 ++---
>  drivers/iommu/mtk_iommu.c                     |  8 ++---
>  drivers/iommu/mtk_iommu_v1.c                  |  7 ++--
>  drivers/iommu/omap-iommu.c                    | 12 +++----
>  drivers/iommu/riscv/iommu.c                   |  9 +++--
>  drivers/iommu/rockchip-iommu.c                | 20 ++++++++---
>  drivers/iommu/s390-iommu.c                    |  9 +++--
>  drivers/iommu/sprd-iommu.c                    |  3 +-
>  drivers/iommu/sun50i-iommu.c                  |  8 +++--
>  drivers/iommu/tegra-smmu.c                    | 10 +++---
>  drivers/iommu/virtio-iommu.c                  |  6 ++--
>  25 files changed, 152 insertions(+), 97 deletions(-)

I've split things like this into more patches before, but this
actually isn't too bad, so I wouldn't push for it.

A series version would be:
 - add a new op 'attach_dev2' or whatever
 - Convert all drivers that just change the signature
 - Convert drivers that have a trivial iommu_get_domain_for_dev()
 - N patches to convert more complex drivers one by one
 - Remove old op attach_dev

Again, looks Ok as-is:

Reviewed-by: Jason Gunthorpe <[email protected]>

Jason

Reply via email to