[bug report] drm/msm/adreno: Add support for ACD
Dan Carpenter
dan.carpenter at linaro.org
Thu Aug 14 07:06:03 UTC 2025
On Thu, Aug 14, 2025 at 12:28:31AM +0530, Akhil P Oommen wrote:
> On 8/13/2025 11:18 AM, Dan Carpenter wrote:
> > On Fri, Aug 08, 2025 at 10:28:38PM +0530, Akhil P Oommen wrote:
> >> On 8/7/2025 9:23 PM, Dan Carpenter wrote:
> >>> Hello Akhil P Oommen,
> >>>
> >>> Commit b733fe7bff8b ("drm/msm/adreno: Add support for ACD") from Apr
> >>> 19, 2025 (linux-next), leads to the following Smatch static checker
> >>> warning:
> >>>
> >>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c:1700 a6xx_gmu_acd_probe()
> >>> error: 'opp' dereferencing possible ERR_PTR()
> >>>
> >>> drivers/gpu/drm/msm/adreno/a6xx_gmu.c
> >>> 1668 static int a6xx_gmu_acd_probe(struct a6xx_gmu *gmu)
> >>> 1669 {
> >>> 1670 struct a6xx_gpu *a6xx_gpu = container_of(gmu, struct a6xx_gpu, gmu);
> >>> 1671 struct a6xx_hfi_acd_table *cmd = &gmu->acd_table;
> >>> 1672 struct adreno_gpu *adreno_gpu = &a6xx_gpu->base;
> >>> 1673 struct msm_gpu *gpu = &adreno_gpu->base;
> >>> 1674 int ret, i, cmd_idx = 0;
> >>> 1675 extern bool disable_acd;
> >>> 1676
> >>> 1677 /* Skip ACD probe if requested via module param */
> >>> 1678 if (disable_acd) {
> >>> 1679 DRM_DEV_ERROR(gmu->dev, "Skipping GPU ACD probe\n");
> >>> 1680 return 0;
> >>> 1681 }
> >>> 1682
> >>> 1683 cmd->version = 1;
> >>> 1684 cmd->stride = 1;
> >>> 1685 cmd->enable_by_level = 0;
> >>> 1686
> >>> 1687 /* Skip freq = 0 and parse acd-level for rest of the OPPs */
> >>> 1688 for (i = 1; i < gmu->nr_gpu_freqs; i++) {
> >>> 1689 struct dev_pm_opp *opp;
> >>> 1690 struct device_node *np;
> >>> 1691 unsigned long freq;
> >>> 1692 u32 val;
> >>> 1693
> >>> 1694 freq = gmu->gpu_freqs[i];
> >>> 1695 opp = dev_pm_opp_find_freq_exact(&gpu->pdev->dev, freq, true);
> >>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> >>> No error checking.
> >>
> >> We are passing back a freq which we pulled out from the opp_table a few
> >> lines before this. So it is unlikely that this call would fail.
> >>
> >> But it is okay to add a check here if that would make Smatch checker happy.
> >>
> >
> > No, no, just ignore it, if it can't fail.
> >
> > Or I can add dev_pm_opp_find_freq_exact() to the "no need to check" list.
> > That's easy to do.
>
> Would that make Smatch ignore usage of "dev_pm_opp_find_freq_exact()" in
> other code/drivers? If yes, we may not want that.
It just wouldn't print this warning if people left off the error handling.
I'm going to ignore it anyway, right? I recently had a case where I got
mixed up which functions needed error handling and I ignored the wrong one.
We still caught it in testing, but I'm also going through and marking which ones
to ignore or not.
regards,
dan carpenter
More information about the Freedreno
mailing list