On Fri, Sep 11, 2020 at 06:08:53PM +0200, Luca Weiss wrote: > The function iommu_domain_alloc returns NULL on platforms without IOMMU > such as msm8974. This resulted in PTR_ERR(-ENODEV) being assigned to > gpu->aspace so the correct code path wasn't taken. > > Fixes: ccac7ce373c1 ("drm/msm: Refactor address space initialization") > Signed-off-by: Luca Weiss <luca@xxxxxxxxx> Reviewed-by: Jordan Crouse <jcrouse@xxxxxxxxxxxxxx> > --- > drivers/gpu/drm/msm/adreno/adreno_gpu.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c > index 862dd35b27d3..6e8bef1a9ea2 100644 > --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c > +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c > @@ -189,10 +189,16 @@ struct msm_gem_address_space * > adreno_iommu_create_address_space(struct msm_gpu *gpu, > struct platform_device *pdev) > { > - struct iommu_domain *iommu = iommu_domain_alloc(&platform_bus_type); > - struct msm_mmu *mmu = msm_iommu_new(&pdev->dev, iommu); > + struct iommu_domain *iommu; > + struct msm_mmu *mmu; > struct msm_gem_address_space *aspace; > > + iommu = iommu_domain_alloc(&platform_bus_type); > + if (!iommu) > + return NULL; > + > + mmu = msm_iommu_new(&pdev->dev, iommu); > + > aspace = msm_gem_address_space_create(mmu, "gpu", SZ_16M, > 0xffffffff - SZ_16M); > > -- > 2.28.0 > -- The Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project