[bug report] drm/msm: Support pgtable preallocation
Dan Carpenter
dan.carpenter at linaro.org
Tue Jul 15 22:59:23 UTC 2025
Hello Rob Clark,
Commit e601ea31d66b ("drm/msm: Support pgtable preallocation") from
Jun 29, 2025 (linux-next), leads to the following Smatch static
checker warning:
drivers/gpu/drm/msm/msm_iommu.c:782 msm_iommu_gpu_new()
error: we previously assumed 'adreno_smmu' could be null (see line 771)
drivers/gpu/drm/msm/msm_iommu.c
760 struct msm_mmu *msm_iommu_gpu_new(struct device *dev, struct msm_gpu *gpu, unsigned long quirks)
761 {
762 struct adreno_smmu_priv *adreno_smmu = dev_get_drvdata(dev);
763 struct msm_iommu *iommu;
764 struct msm_mmu *mmu;
765
766 mmu = msm_iommu_new(dev, quirks);
767 if (IS_ERR_OR_NULL(mmu))
768 return mmu;
769
770 iommu = to_msm_iommu(mmu);
771 if (adreno_smmu && adreno_smmu->cookie) {
^^^^^^^^^^^
The commit adds a NULL check. Hopefully it can be removed.
772 const struct io_pgtable_cfg *cfg =
773 adreno_smmu->get_ttbr1_cfg(adreno_smmu->cookie);
774 size_t tblsz = get_tblsz(cfg);
775
776 iommu->pt_cache =
777 kmem_cache_create("msm-mmu-pt", tblsz, tblsz, 0, NULL);
778 }
779 iommu_set_fault_handler(iommu->domain, msm_gpu_fault_handler, iommu);
780
781 /* Enable stall on iommu fault: */
--> 782 if (adreno_smmu->set_stall)
^^^^^^^^^^^
because the old code dereferences "adreno_smmu" without checking.
783 adreno_smmu->set_stall(adreno_smmu->cookie, true);
784
785 return mmu;
786 }
regards,
dan carpenter
More information about the Freedreno
mailing list