[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZBsb01emBJJMZIt0@ziepe.ca>
Date: Wed, 22 Mar 2023 12:16:35 -0300
From: Jason Gunthorpe <jgg@...pe.ca>
To: Steven Price <steven.price@....com>
Cc: Heiko Stuebner <heiko@...ech.de>, Joerg Roedel <joro@...tes.org>,
Will Deacon <will@...nel.org>,
Robin Murphy <robin.murphy@....com>, iommu@...ts.linux.dev,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-rockchip@...ts.infradead.org,
Lu Baolu <baolu.lu@...ux.intel.com>
Subject: Re: [PATCH] iommu/rockchip: Add missing set_platform_dma_ops callback
On Wed, Mar 22, 2023 at 03:08:41PM +0000, Steven Price wrote:
> @@ -1035,8 +1055,9 @@ static int rk_iommu_attach_device(struct iommu_domain *domain,
> if (iommu->domain == domain)
> return 0;
>
> - if (iommu->domain)
> - rk_iommu_detach_device(iommu->domain, dev);
> + ret = rk_iommu_identity_attach(&rk_identity_domain, dev);
> + if (ret)
> + return ret;
>
> iommu->domain = domain;
>
> @@ -1049,8 +1070,6 @@ static int rk_iommu_attach_device(struct iommu_domain *domain,
> return 0;
>
> ret = rk_iommu_enable(iommu);
> - if (ret)
> - rk_iommu_detach_device(iommu->domain, dev);
I think this still needs error handling, it should put it back to the
identity domain and return an error code if it fails to attach to the
requested domain.
It should also initlaize iommu->domain to the identity domain when the
iommu struct is allocated. The iommu->domain should never be
NULL. identity domain means the IOMMU is turned off which was
previously called "detached".
Otherwise it looks like I would expect, thanks
Jason
Powered by blists - more mailing lists