Re: [kbuild] drivers/gpu/drm/msm/adreno/a3xx_gpu.c:600 a3xx_gpu_init() error: passing non negative 1 to ERR_PTR
From: Rob Clark
Date: Fri Apr 16 2021 - 11:15:38 EST
On Thu, Apr 15, 2021 at 9:33 PM Dan Carpenter <dan.carpenter@xxxxxxxxxx> wrote:
>
> On Thu, Apr 15, 2021 at 04:21:01PM -0700, Rob Clark wrote:
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 571 icc_path = devm_of_icc_get(&pdev->dev, "gfx-mem");
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 572 ret = IS_ERR(icc_path);
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 573 if (ret)
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 574 goto fail;
> > > >
> > > > IS_ERR() returns/true false so this will lead to an Oops in the caller.
> > > >
> > > > icc_path = devm_of_icc_get(&pdev->dev, "gfx-mem");
> > > > if (IS_ERR(icc_path)) {
> > > > ret = PTR_ERR(icc_path);
> > > > goto fail;
> > > > }
> > > Agree.
> > >
> > > >
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 575
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 576 ocmem_icc_path = devm_of_icc_get(&pdev->dev, "ocmem");
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 577 ret = IS_ERR(ocmem_icc_path);
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 578 if (ret) {
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 579 /* allow -ENODATA, ocmem icc is optional */
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 580 if (ret != -ENODATA)
> > > > 5785dd7a8ef0de Akhil P Oommen 2020-10-28 581 goto fail;
> > > >
> > > > Same. ret is true/false so it can't be equal to -ENODATA, plus the
> > > > caller will Oops.
> > > >
> > > > Btw, this patch removed the assignments:
> > > >
> > > > gpu->icc_path = of_icc_get(dev, "gfx-mem");
> > > > gpu->ocmem_icc_path = of_icc_get(dev, "ocmem");
> > > >
> > > > So I think "gpu->icc_path" and "gpu->ocmem_icc_path" are always
> > > > NULL/unused and they should be removed.
> > > >
> > > Agree. Will share a fix.
> > > Thanks, Dan.
> >
> > gpu->ocmem_icc_path/icc_path is used on older devices.. it sounds like
> > we broke some older devices and no one has noticed yet?
>
> This is error paths and dead code. Probably no one is affected in
> real life.
>
oh, right, we are using devm now, so we can drop the icc_put()s
BR,
-R