From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: drivers/gpu/drm/msm/adreno/a2xx_gpu.c:503 a2xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 500)
Date: Mon, 8 Dec 2025 22:35:31 +0800 [thread overview]
Message-ID: <202512082235.2rH8XoPX-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Akhil P Oommen <akhilpo@oss.qualcomm.com>
CC: Rob Clark <robin.clark@oss.qualcomm.com>
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
date: 3 weeks ago
:::::: branch date: 12 hours ago
:::::: commit date: 3 weeks ago
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 <error27@gmail.com>
| 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
21af872cd8c695 Jonathan Marek 2018-11-21 492
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;
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) {
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 }
491fadb2b818e1 Akhil P Oommen 2025-11-18 540
:::::: The code at line 503 was first introduced by commit
:::::: 21af872cd8c695060dd1d045293bf21ea9156a51 drm/msm/adreno: add a2xx
:::::: TO: Jonathan Marek <jonathan@marek.ca>
:::::: CC: Rob Clark <robdclark@gmail.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
WARNING: multiple messages have this Message-ID (diff)
From: Dan Carpenter <dan.carpenter@linaro.org>
To: oe-kbuild@lists.linux.dev, Akhil P Oommen <akhilpo@oss.qualcomm.com>
Cc: lkp@intel.com, oe-kbuild-all@lists.linux.dev,
linux-kernel@vger.kernel.org,
Rob Clark <robin.clark@oss.qualcomm.com>
Subject: drivers/gpu/drm/msm/adreno/a2xx_gpu.c:503 a2xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 500)
Date: Tue, 9 Dec 2025 11:10:12 +0300 [thread overview]
Message-ID: <202512082235.2rH8XoPX-lkp@intel.com> (raw)
Message-ID: <20251209081012.pHKssybr2WbbC8mHeGcfiNZ4lhAsljth0tvWW1Af9Vs@z> (raw)
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?
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 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
next reply other threads:[~2025-12-08 14:36 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-08 14:35 kernel test robot [this message]
2025-12-09 8:10 ` drivers/gpu/drm/msm/adreno/a2xx_gpu.c:503 a2xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 500) Dan Carpenter
2025-12-24 18:37 ` Akhil P Oommen
-- 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=202512082235.2rH8XoPX-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/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.