* drivers/gpu/drm/msm/adreno/a3xx_gpu.c:530 a3xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 525)
@ 2026-03-19 9:19 ` Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: kernel test robot @ 2026-03-19 3:38 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
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: 8a30aeb0d1b4e4aaf7f7bae72f20f2ae75385ccb
commit: 491fadb2b818e1d900229a1f8243de6458381306 drm/msm/adreno: Move adreno_gpu_func to catalogue
date: 4 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 4 months ago
config: arm64-randconfig-r073-20260319 (https://download.01.org/0day-ci/archive/20260319/202603191102.hueYyyPw-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 4abb927bacf37f18f6359a41639a6d1b3bffffb5)
smatch: v0.5.0-9004-gb810ac53
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/202603191102.hueYyyPw-lkp@intel.com/
smatch warnings:
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/a2xx_gpu.c:503 a2xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 500)
drivers/gpu/drm/msm/adreno/a4xx_gpu.c:642 a4xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 637)
vim +/pdev +530 drivers/gpu/drm/msm/adreno/a3xx_gpu.c
70c70f091b1ffd Rob Clark 2014-05-30 517
491fadb2b818e1 Akhil P Oommen 2025-11-18 518 static struct msm_gpu *a3xx_gpu_init(struct drm_device *dev)
7198e6b03155f6 Rob Clark 2013-07-19 519 {
7198e6b03155f6 Rob Clark 2013-07-19 520 struct a3xx_gpu *a3xx_gpu = NULL;
55459968176f13 Rob Clark 2013-12-05 521 struct adreno_gpu *adreno_gpu;
7198e6b03155f6 Rob Clark 2013-07-19 522 struct msm_gpu *gpu;
060530f1ea6740 Rob Clark 2014-03-03 523 struct msm_drm_private *priv = dev->dev_private;
060530f1ea6740 Rob Clark 2014-03-03 524 struct platform_device *pdev = priv->gpu_pdev;
491fadb2b818e1 Akhil P Oommen 2025-11-18 @525 struct adreno_platform_config *config = pdev->dev.platform_data;
5785dd7a8ef0de Akhil P Oommen 2020-10-28 526 struct icc_path *ocmem_icc_path;
5785dd7a8ef0de Akhil P Oommen 2020-10-28 527 struct icc_path *icc_path;
7198e6b03155f6 Rob Clark 2013-07-19 528 int ret;
7198e6b03155f6 Rob Clark 2013-07-19 529
7198e6b03155f6 Rob Clark 2013-07-19 @530 if (!pdev) {
6a41da17e87dee Mamta Shukla 2018-10-20 531 DRM_DEV_ERROR(dev->dev, "no a3xx device\n");
7198e6b03155f6 Rob Clark 2013-07-19 532 ret = -ENXIO;
7198e6b03155f6 Rob Clark 2013-07-19 533 goto fail;
7198e6b03155f6 Rob Clark 2013-07-19 534 }
7198e6b03155f6 Rob Clark 2013-07-19 535
7198e6b03155f6 Rob Clark 2013-07-19 536 a3xx_gpu = kzalloc(sizeof(*a3xx_gpu), GFP_KERNEL);
7198e6b03155f6 Rob Clark 2013-07-19 537 if (!a3xx_gpu) {
7198e6b03155f6 Rob Clark 2013-07-19 538 ret = -ENOMEM;
7198e6b03155f6 Rob Clark 2013-07-19 539 goto fail;
7198e6b03155f6 Rob Clark 2013-07-19 540 }
7198e6b03155f6 Rob Clark 2013-07-19 541
55459968176f13 Rob Clark 2013-12-05 542 adreno_gpu = &a3xx_gpu->base;
55459968176f13 Rob Clark 2013-12-05 543 gpu = &adreno_gpu->base;
7198e6b03155f6 Rob Clark 2013-07-19 544
70c70f091b1ffd Rob Clark 2014-05-30 545 gpu->perfcntrs = perfcntrs;
70c70f091b1ffd Rob Clark 2014-05-30 546 gpu->num_perfcntrs = ARRAY_SIZE(perfcntrs);
70c70f091b1ffd Rob Clark 2014-05-30 547
3bcefb0497f9fc Rob Clark 2014-09-05 548 adreno_gpu->registers = a3xx_registers;
3bcefb0497f9fc Rob Clark 2014-09-05 549
491fadb2b818e1 Akhil P Oommen 2025-11-18 550 ret = adreno_gpu_init(dev, pdev, adreno_gpu, config->info->funcs, 1);
7198e6b03155f6 Rob Clark 2013-07-19 551 if (ret)
7198e6b03155f6 Rob Clark 2013-07-19 552 goto fail;
7198e6b03155f6 Rob Clark 2013-07-19 553
55459968176f13 Rob Clark 2013-12-05 554 /* if needed, allocate gmem: */
3d6ab124a4d5de Luca Weiss 2024-01-21 555 if (adreno_is_a330(adreno_gpu) || adreno_is_a305b(adreno_gpu)) {
26c0b26dcd005d Brian Masney 2019-08-23 556 ret = adreno_gpu_ocmem_init(&adreno_gpu->base.pdev->dev,
26c0b26dcd005d Brian Masney 2019-08-23 557 adreno_gpu, &a3xx_gpu->ocmem);
26c0b26dcd005d Brian Masney 2019-08-23 558 if (ret)
26c0b26dcd005d Brian Masney 2019-08-23 559 goto fail;
55459968176f13 Rob Clark 2013-12-05 560 }
55459968176f13 Rob Clark 2013-12-05 561
5785dd7a8ef0de Akhil P Oommen 2020-10-28 562 icc_path = devm_of_icc_get(&pdev->dev, "gfx-mem");
3eda901995371d Dan Carpenter 2021-10-01 563 if (IS_ERR(icc_path)) {
3eda901995371d Dan Carpenter 2021-10-01 564 ret = PTR_ERR(icc_path);
5785dd7a8ef0de Akhil P Oommen 2020-10-28 565 goto fail;
3eda901995371d Dan Carpenter 2021-10-01 566 }
5785dd7a8ef0de Akhil P Oommen 2020-10-28 567
5785dd7a8ef0de Akhil P Oommen 2020-10-28 568 ocmem_icc_path = devm_of_icc_get(&pdev->dev, "ocmem");
3eda901995371d Dan Carpenter 2021-10-01 569 if (IS_ERR(ocmem_icc_path)) {
3eda901995371d Dan Carpenter 2021-10-01 570 ret = PTR_ERR(ocmem_icc_path);
5785dd7a8ef0de Akhil P Oommen 2020-10-28 571 /* allow -ENODATA, ocmem icc is optional */
5785dd7a8ef0de Akhil P Oommen 2020-10-28 572 if (ret != -ENODATA)
5785dd7a8ef0de Akhil P Oommen 2020-10-28 573 goto fail;
5785dd7a8ef0de Akhil P Oommen 2020-10-28 574 ocmem_icc_path = NULL;
5785dd7a8ef0de Akhil P Oommen 2020-10-28 575 }
5785dd7a8ef0de Akhil P Oommen 2020-10-28 576
5785dd7a8ef0de Akhil P Oommen 2020-10-28 577
d163ba0b65f2e4 Brian Masney 2019-11-21 578 /*
d163ba0b65f2e4 Brian Masney 2019-11-21 579 * Set the ICC path to maximum speed for now by multiplying the fastest
d163ba0b65f2e4 Brian Masney 2019-11-21 580 * frequency by the bus width (8). We'll want to scale this later on to
d163ba0b65f2e4 Brian Masney 2019-11-21 581 * improve battery life.
d163ba0b65f2e4 Brian Masney 2019-11-21 582 */
5785dd7a8ef0de Akhil P Oommen 2020-10-28 583 icc_set_bw(icc_path, 0, Bps_to_icc(gpu->fast_rate) * 8);
5785dd7a8ef0de Akhil P Oommen 2020-10-28 584 icc_set_bw(ocmem_icc_path, 0, Bps_to_icc(gpu->fast_rate) * 8);
d163ba0b65f2e4 Brian Masney 2019-11-21 585
871d812aa43e63 Rob Clark 2013-11-16 586 return gpu;
7198e6b03155f6 Rob Clark 2013-07-19 587
7198e6b03155f6 Rob Clark 2013-07-19 588 fail:
7198e6b03155f6 Rob Clark 2013-07-19 589 if (a3xx_gpu)
7198e6b03155f6 Rob Clark 2013-07-19 590 a3xx_destroy(&a3xx_gpu->base.base);
7198e6b03155f6 Rob Clark 2013-07-19 591
7198e6b03155f6 Rob Clark 2013-07-19 592 return ERR_PTR(ret);
7198e6b03155f6 Rob Clark 2013-07-19 593 }
491fadb2b818e1 Akhil P Oommen 2025-11-18 594
:::::: The code at line 530 was first introduced by commit
:::::: 7198e6b03155f6dadecadba004eb83b81a6ffe4c drm/msm: add a3xx gpu support
:::::: TO: Rob Clark <robdclark@gmail.com>
:::::: CC: Rob Clark <robdclark@gmail.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
* drivers/gpu/drm/msm/adreno/a3xx_gpu.c:530 a3xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 525)
@ 2026-03-19 9:19 ` Dan Carpenter
0 siblings, 0 replies; 2+ messages in thread
From: Dan Carpenter @ 2026-03-19 9:19 UTC (permalink / raw)
To: oe-kbuild, Akhil P Oommen; +Cc: lkp, oe-kbuild-all, linux-kernel, Rob Clark
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 8a30aeb0d1b4e4aaf7f7bae72f20f2ae75385ccb
commit: 491fadb2b818e1d900229a1f8243de6458381306 drm/msm/adreno: Move adreno_gpu_func to catalogue
config: arm64-randconfig-r073-20260319 (https://download.01.org/0day-ci/archive/20260319/202603191102.hueYyyPw-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 4abb927bacf37f18f6359a41639a6d1b3bffffb5)
smatch: v0.5.0-9004-gb810ac53
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/202603191102.hueYyyPw-lkp@intel.com/
smatch warnings:
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/a2xx_gpu.c:503 a2xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 500)
drivers/gpu/drm/msm/adreno/a4xx_gpu.c:642 a4xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 637)
vim +/pdev +530 drivers/gpu/drm/msm/adreno/a3xx_gpu.c
491fadb2b818e1 Akhil P Oommen 2025-11-18 518 static struct msm_gpu *a3xx_gpu_init(struct drm_device *dev)
7198e6b03155f6 Rob Clark 2013-07-19 519 {
7198e6b03155f6 Rob Clark 2013-07-19 520 struct a3xx_gpu *a3xx_gpu = NULL;
55459968176f13 Rob Clark 2013-12-05 521 struct adreno_gpu *adreno_gpu;
7198e6b03155f6 Rob Clark 2013-07-19 522 struct msm_gpu *gpu;
060530f1ea6740 Rob Clark 2014-03-03 523 struct msm_drm_private *priv = dev->dev_private;
060530f1ea6740 Rob Clark 2014-03-03 524 struct platform_device *pdev = priv->gpu_pdev;
491fadb2b818e1 Akhil P Oommen 2025-11-18 @525 struct adreno_platform_config *config = pdev->dev.platform_data;
^^^^^^
Patch adds a dereference.
5785dd7a8ef0de Akhil P Oommen 2020-10-28 526 struct icc_path *ocmem_icc_path;
5785dd7a8ef0de Akhil P Oommen 2020-10-28 527 struct icc_path *icc_path;
7198e6b03155f6 Rob Clark 2013-07-19 528 int ret;
7198e6b03155f6 Rob Clark 2013-07-19 529
7198e6b03155f6 Rob Clark 2013-07-19 @530 if (!pdev) {
^^^^
But the old code assumed pdev could be NULL. Probably the NULL checks
are unnecessary.
6a41da17e87dee Mamta Shukla 2018-10-20 531 DRM_DEV_ERROR(dev->dev, "no a3xx device\n");
7198e6b03155f6 Rob Clark 2013-07-19 532 ret = -ENXIO;
7198e6b03155f6 Rob Clark 2013-07-19 533 goto fail;
7198e6b03155f6 Rob Clark 2013-07-19 534 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2026-03-19 9:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-19 3:38 drivers/gpu/drm/msm/adreno/a3xx_gpu.c:530 a3xx_gpu_init() warn: variable dereferenced before check 'pdev' (see line 525) kernel test robot
2026-03-19 9:19 ` Dan Carpenter
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.