Re: [PATCH v3] iommu/rockchip: prevent iommus dead loop when two masters share one IOMMU

From: Joerg Roedel
Date: Fri Jun 27 2025 - 03:12:31 EST


On Mon, Jun 23, 2025 at 10:00:18AM +0800, Simon Xue wrote:
> When two masters share an IOMMU, calling ops->of_xlate during
> the second master's driver init may overwrite iommu->domain set
> by the first. This causes the check if (iommu->domain == domain)
> in rk_iommu_attach_device() to fail, resulting in the same
> iommu->node being added twice to &rk_domain->iommus, which can
> lead to an infinite loop in subsequent &rk_domain->iommus operations.
>
> Cc: <stable@xxxxxxxxxxxxxxx>
> Fixes: 25c2325575cc ("iommu/rockchip: Add missing set_platform_dma_ops callback")
> Signed-off-by: Simon Xue <xxm@xxxxxxxxxxxxxx>
> Reviewed-by: Robin Murphy <robin.murphy@xxxxxxx>
>
> v3:
> Add missing `Cc: stable@xxxxxxxxxxxxxxx` in commit message.
> No functional changes.
> v2:
> No functional changes.
> ---
> drivers/iommu/rockchip-iommu.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)

Applied for -rc, thanks.