[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1f920cc2-625c-48af-a6d0-a505980fbeaa@kernel.org>
Date: Tue, 7 Oct 2025 11:38:08 +0200
From: Hans Verkuil <hverkuil+cisco@...nel.org>
To: iommu@...ts.linux.dev
Cc: Linux Kernel <linux-kernel@...r.kernel.org>,
Linux Media Mailing List <linux-media@...r.kernel.org>,
Laurent Pinchart <laurent.pinchart@...asonboard.com>,
Jason Gunthorpe <jgg@...dia.com>, Robin Murphy <robin.murphy@....com>,
Sakari Ailus <sakari.ailus@...ux.intel.com>
Subject: Re: [PATCH] iommu: __iommu_attach_group: check for non-NULL
blocking_domain
Hi all,
On 29/09/2025 10:23, Hans Verkuil wrote:
> Loading the omap3isp driver fails in __iommu_attach_group:
> group->blocking_domain is NULL, and so the check
> group->domain != group->blocking_domain is always true and it
> returns -EBUSY.
>
> Only return -EBUSY if group->blocking_domain is non-NULL.
>
> Signed-off-by: Hans Verkuil <hverkuil+cisco@...nel.org>
> Fixes: 0286300e6045 ("iommu: iommu_group_claim_dma_owner() must always assign a domain")
> ---
So just ignore this patch :-)
Today I dropped this patch from my branch, and retested on my Beagle xM and it all
worked fine.
I suspect that it might be related to the fact that I started testing with the Beagle
board (so not the xM variant), and I hit the issue there. But the Beagle board doesn't
have the connector for the camera, so later I switched to the xM variant. But I probably
never tried running it on the xM without that iommu patch until today.
In two weeks time I have access to my Beagle board again and I'll experiment a bit
to see if my theory is correct.
Apologies for all the noise.
Regards,
Hans
> Since I am unfamiliar with the iommu core code, I am uncertain whether I am
> just papering over a bug elsewhere, or whether this is really the correct solution.
>
> The omap3isp code in question is here:
>
> drivers/media/platform/ti/omap3isp/isp.c, function isp_attach_iommu().
>
> This omap3isp code predates the addition of blocking_domain and it used to work
> before that feature was added.
>
> I've tested this patch with my Beagle XM board.
>
> If this patch is addressing the issue in the wrong place, then advise
> on what the correct solution is would be very much appreciated!
>
> I have a bunch of media omap3isp cleanup patches pending, but there is no point in
> posting those until this issue is resolved.
>
> Regards,
>
> Hans
> ---
> drivers/iommu/iommu.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> index 060ebe330ee1..0ab1671ee850 100644
> --- a/drivers/iommu/iommu.c
> +++ b/drivers/iommu/iommu.c
> @@ -2220,7 +2220,7 @@ static int __iommu_attach_group(struct iommu_domain *domain,
> struct device *dev;
>
> if (group->domain && group->domain != group->default_domain &&
> - group->domain != group->blocking_domain)
> + group->blocking_domain && group->domain != group->blocking_domain)
> return -EBUSY;
>
> dev = iommu_group_first_dev(group);
Powered by blists - more mailing lists