Message ID | 0-v1-3049f92c4812+16691-host1x_def_dom_fix_jgg@nvidia.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [rc] drm/tegra: Do not assume that a NULL domain means no DMA IOMMU | expand |
On Tue, Jan 30, 2024 at 12:14:54PM -0400, Jason Gunthorpe wrote: > Previously with tegra-smmu, even with CONFIG_IOMMU_DMA, the default domain > could have been left as NULL. The NULL domain is specially recognized by > host1x_client_iommu_attach() as meaning it is not the DMA domain and > should be replaced with the special shared domain. > > This happened prior to the below commit because tegra-smmu was using the > NULL domain to mean IDENTITY. > > Now that the domain is properly labled the test in DRM doesn't see NULL. > Check for IDENTITY as well to enable the special domains. > > Fixes: c8cc2655cc6c ("iommu/tegra-smmu: Implement an IDENTITY domain") > Reported-by: diogo.ivo@tecnico.ulisboa.pt > Closes: https://lore.kernel.org/all/bbmhcoghrprmbdibnjum6lefix2eoquxrde7wyqeulm4xabmlm@b6jy32saugqh/ > Tested-by: diogo.ivo@tecnico.ulisboa.pt > Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> > --- > drivers/gpu/drm/tegra/drm.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) Applied, thanks.
diff --git a/drivers/gpu/drm/tegra/drm.c b/drivers/gpu/drm/tegra/drm.c index ff36171c8fb700..a73cff7a307082 100644 --- a/drivers/gpu/drm/tegra/drm.c +++ b/drivers/gpu/drm/tegra/drm.c @@ -960,7 +960,8 @@ int host1x_client_iommu_attach(struct host1x_client *client) * not the shared IOMMU domain, don't try to attach it to a different * domain. This allows using the IOMMU-backed DMA API. */ - if (domain && domain != tegra->domain) + if (domain && domain->type != IOMMU_DOMAIN_IDENTITY && + domain != tegra->domain) return 0; if (tegra->domain) {