All of lore.kernel.org
 help / color / mirror / Atom feed
From: Akhil P Oommen <akhilpo@oss.qualcomm.com>
To: Dan Carpenter <dan.carpenter@linaro.org>, oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
	linux-kernel@vger.kernel.org,
	Rob Clark <robin.clark@oss.qualcomm.com>
Subject: Re: drivers/gpu/drm/msm/adreno/a2xx_gpu.c:503 a2xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 500)
Date: Thu, 25 Dec 2025 00:07:31 +0530	[thread overview]
Message-ID: <ca0bebc1-849e-47a9-8a75-9fe7ba0064f2@oss.qualcomm.com> (raw)
In-Reply-To: <202512082235.2rH8XoPX-lkp@intel.com>

On 12/9/2025 1:40 PM, Dan Carpenter wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
> head:   c2f2b01b74be8b40a2173372bcd770723f87e7b2
> commit: 491fadb2b818e1d900229a1f8243de6458381306 drm/msm/adreno: Move adreno_gpu_func to catalogue
> config: arm64-randconfig-r072-20251207 (https://download.01.org/0day-ci/archive/20251208/202512082235.2rH8XoPX-lkp@intel.com/config)
> compiler: clang version 22.0.0git (https://github.com/llvm/llvm-project a805147ac1ba123916de182babb0831fbb148756)
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> | Closes: https://lore.kernel.org/r/202512082235.2rH8XoPX-lkp@intel.com/
> 
> smatch warnings:
> drivers/gpu/drm/msm/adreno/a2xx_gpu.c:503 a2xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 500)
> drivers/gpu/drm/msm/adreno/a3xx_gpu.c:530 a3xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 525)
> drivers/gpu/drm/msm/adreno/a4xx_gpu.c:642 a4xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 637)
> 
> vim +/pdev +503 drivers/gpu/drm/msm/adreno/a2xx_gpu.c
> 
> 491fadb2b818e1 Akhil P Oommen 2025-11-18  493  static struct msm_gpu *a2xx_gpu_init(struct drm_device *dev)
> 21af872cd8c695 Jonathan Marek 2018-11-21  494  {
> 21af872cd8c695 Jonathan Marek 2018-11-21  495  	struct a2xx_gpu *a2xx_gpu = NULL;
> 21af872cd8c695 Jonathan Marek 2018-11-21  496  	struct adreno_gpu *adreno_gpu;
> 21af872cd8c695 Jonathan Marek 2018-11-21  497  	struct msm_gpu *gpu;
> 21af872cd8c695 Jonathan Marek 2018-11-21  498  	struct msm_drm_private *priv = dev->dev_private;
> 21af872cd8c695 Jonathan Marek 2018-11-21  499  	struct platform_device *pdev = priv->gpu_pdev;
> 491fadb2b818e1 Akhil P Oommen 2025-11-18 @500  	struct adreno_platform_config *config = pdev->dev.platform_data;
>                                                                                         ^^^^^^^^^
> Patch adds a dereference.
> 
> 21af872cd8c695 Jonathan Marek 2018-11-21  501  	int ret;
> 21af872cd8c695 Jonathan Marek 2018-11-21  502  
> 21af872cd8c695 Jonathan Marek 2018-11-21 @503  	if (!pdev) {
> 
> but the old code checked for NULL.  Probably this NULL check can be
> removed?

Yes, we can remove this unnecessary check. I will send a patch. Thanks.

-Akhil.

> 
> 21af872cd8c695 Jonathan Marek 2018-11-21  504  		dev_err(dev->dev, "no a2xx device\n");
> 21af872cd8c695 Jonathan Marek 2018-11-21  505  		ret = -ENXIO;
> 21af872cd8c695 Jonathan Marek 2018-11-21  506  		goto fail;
> 21af872cd8c695 Jonathan Marek 2018-11-21  507  	}
> 21af872cd8c695 Jonathan Marek 2018-11-21  508  
> 21af872cd8c695 Jonathan Marek 2018-11-21  509  	a2xx_gpu = kzalloc(sizeof(*a2xx_gpu), GFP_KERNEL);
> 21af872cd8c695 Jonathan Marek 2018-11-21  510  	if (!a2xx_gpu) {
> 21af872cd8c695 Jonathan Marek 2018-11-21  511  		ret = -ENOMEM;
> 21af872cd8c695 Jonathan Marek 2018-11-21  512  		goto fail;
> 21af872cd8c695 Jonathan Marek 2018-11-21  513  	}
> 21af872cd8c695 Jonathan Marek 2018-11-21  514  
> 21af872cd8c695 Jonathan Marek 2018-11-21  515  	adreno_gpu = &a2xx_gpu->base;
> 21af872cd8c695 Jonathan Marek 2018-11-21  516  	gpu = &adreno_gpu->base;
> 21af872cd8c695 Jonathan Marek 2018-11-21  517  
> 21af872cd8c695 Jonathan Marek 2018-11-21  518  	gpu->perfcntrs = perfcntrs;
> 21af872cd8c695 Jonathan Marek 2018-11-21  519  	gpu->num_perfcntrs = ARRAY_SIZE(perfcntrs);
> 21af872cd8c695 Jonathan Marek 2018-11-21  520  
> 491fadb2b818e1 Akhil P Oommen 2025-11-18  521  	ret = adreno_gpu_init(dev, pdev, adreno_gpu, config->info->funcs, 1);
> db07ce5da8b26b Fabio Estevam  2023-06-20  522  	if (ret)
> db07ce5da8b26b Fabio Estevam  2023-06-20  523  		goto fail;
> db07ce5da8b26b Fabio Estevam  2023-06-20  524  
> 21af872cd8c695 Jonathan Marek 2018-11-21  525  	if (adreno_is_a20x(adreno_gpu))
> 21af872cd8c695 Jonathan Marek 2018-11-21  526  		adreno_gpu->registers = a200_registers;
> 21af872cd8c695 Jonathan Marek 2018-11-21  527  	else if (adreno_is_a225(adreno_gpu))
> 21af872cd8c695 Jonathan Marek 2018-11-21  528  		adreno_gpu->registers = a225_registers;
> 21af872cd8c695 Jonathan Marek 2018-11-21  529  	else
> 21af872cd8c695 Jonathan Marek 2018-11-21  530  		adreno_gpu->registers = a220_registers;
> 21af872cd8c695 Jonathan Marek 2018-11-21  531  
> 21af872cd8c695 Jonathan Marek 2018-11-21  532  	return gpu;
> 21af872cd8c695 Jonathan Marek 2018-11-21  533  
> 21af872cd8c695 Jonathan Marek 2018-11-21  534  fail:
> 21af872cd8c695 Jonathan Marek 2018-11-21  535  	if (a2xx_gpu)
> 21af872cd8c695 Jonathan Marek 2018-11-21  536  		a2xx_destroy(&a2xx_gpu->base.base);
> 21af872cd8c695 Jonathan Marek 2018-11-21  537  
> 21af872cd8c695 Jonathan Marek 2018-11-21  538  	return ERR_PTR(ret);
> 21af872cd8c695 Jonathan Marek 2018-11-21  539  }
> 


  reply	other threads:[~2025-12-24 18:37 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-12-08 14:35 drivers/gpu/drm/msm/adreno/a2xx_gpu.c:503 a2xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 500) kernel test robot
2025-12-09  8:10 ` Dan Carpenter
2025-12-24 18:37 ` Akhil P Oommen [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-07-03  9:31 kernel test robot
2025-12-09 21:43 kernel test robot
2025-12-07 19:27 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ca0bebc1-849e-47a9-8a75-9fe7ba0064f2@oss.qualcomm.com \
    --to=akhilpo@oss.qualcomm.com \
    --cc=dan.carpenter@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lkp@intel.com \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=oe-kbuild@lists.linux.dev \
    --cc=robin.clark@oss.qualcomm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.