drm/msm/iommu: Fix null pointer dereference in no-IOMMU case
authorLuca Weiss <luca@z3ntu.xyz>
Mon, 8 May 2023 20:26:45 +0000 (22:26 +0200)
committerRob Clark <robdclark@chromium.org>
Thu, 11 May 2023 14:40:30 +0000 (07:40 -0700)
In the case that no IOMMU is available, msm_iommu_new can return NULL
which should be handled. Without we will get a NULL pointer dereference
in the next statement when we try to use the mmu variable.

Fixes: 8cceb773f565 ("drm/msm/adreno: stall translation on fault for all GPU families")
Signed-off-by: Luca Weiss <luca@z3ntu.xyz>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Patchwork: https://patchwork.freedesktop.org/patch/535915/
Link: https://lore.kernel.org/r/20230508-6-4-drm-msm-iommu-fixup-v1-1-a7a21ec94f5b@z3ntu.xyz
Signed-off-by: Rob Clark <robdclark@chromium.org>
drivers/gpu/drm/msm/msm_iommu.c

index 418e1e0..5080319 100644 (file)
@@ -410,7 +410,7 @@ struct msm_mmu *msm_iommu_gpu_new(struct device *dev, struct msm_gpu *gpu, unsig
        struct msm_mmu *mmu;
 
        mmu = msm_iommu_new(dev, quirks);
-       if (IS_ERR(mmu))
+       if (IS_ERR_OR_NULL(mmu))
                return mmu;
 
        iommu = to_msm_iommu(mmu);