[PATCH v3] iommu/rockchip: prevent iommus dead loop when two masters share one IOMMU
Joerg Roedel
joro at 8bytes.org
Fri Jun 27 00:12:12 PDT 2025
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 at vger.kernel.org>
> Fixes: 25c2325575cc ("iommu/rockchip: Add missing set_platform_dma_ops callback")
> Signed-off-by: Simon Xue <xxm at rock-chips.com>
> Reviewed-by: Robin Murphy <robin.murphy at arm.com>
>
> v3:
> Add missing `Cc: stable at vger.kernel.org` 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.
More information about the Linux-rockchip
mailing list