[<prev] [next>] [day] [month] [year] [list]
Message-ID: <9412d8fc-7bb8-456f-9911-8443303497a5@suswa.mountain>
Date: Thu, 6 Nov 2025 16:10:10 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: oe-kbuild@...ts.linux.dev, Dmitry Baryshkov <lumag@...nel.org>
Cc: lkp@...el.com, oe-kbuild-all@...ts.linux.dev,
linux-kernel@...r.kernel.org,
Rob Clark <robin.clark@....qualcomm.com>
Subject: drivers/gpu/drm/msm/msm_kms.c:251 msm_drm_kms_uninit() warn:
variable dereferenced before check 'kms' (see line 235)
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dc77806cf3b4788d328fddf245e86c5b529f31a2
commit: a409b78fcdf724422fa030bd5ef177ebf3b7608a drm/msm: move wq handling to KMS code
config: powerpc64-randconfig-r073-20251106 (https://download.01.org/0day-ci/archive/20251106/202511061924.Y0EaYmPu-lkp@intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 8.5.0
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@...el.com>
| Reported-by: Dan Carpenter <dan.carpenter@...aro.org>
| Closes: https://lore.kernel.org/r/202511061924.Y0EaYmPu-lkp@intel.com/
smatch warnings:
drivers/gpu/drm/msm/msm_kms.c:251 msm_drm_kms_uninit() warn: variable dereferenced before check 'kms' (see line 235)
vim +/kms +251 drivers/gpu/drm/msm/msm_kms.c
506efcba31296e Dmitry Baryshkov 2023-10-09 220 void msm_drm_kms_uninit(struct device *dev)
506efcba31296e Dmitry Baryshkov 2023-10-09 221 {
506efcba31296e Dmitry Baryshkov 2023-10-09 222 struct platform_device *pdev = to_platform_device(dev);
506efcba31296e Dmitry Baryshkov 2023-10-09 223 struct msm_drm_private *priv = platform_get_drvdata(pdev);
506efcba31296e Dmitry Baryshkov 2023-10-09 224 struct drm_device *ddev = priv->dev;
506efcba31296e Dmitry Baryshkov 2023-10-09 225 struct msm_kms *kms = priv->kms;
506efcba31296e Dmitry Baryshkov 2023-10-09 226 int i;
506efcba31296e Dmitry Baryshkov 2023-10-09 227
506efcba31296e Dmitry Baryshkov 2023-10-09 228 BUG_ON(!kms);
506efcba31296e Dmitry Baryshkov 2023-10-09 229
a409b78fcdf724 Dmitry Baryshkov 2025-07-05 230 /* We must cancel and cleanup any pending vblank enable/disable
a409b78fcdf724 Dmitry Baryshkov 2025-07-05 231 * work before msm_irq_uninstall() to avoid work re-enabling an
a409b78fcdf724 Dmitry Baryshkov 2025-07-05 232 * irq after uninstall has disabled it.
a409b78fcdf724 Dmitry Baryshkov 2025-07-05 233 */
a409b78fcdf724 Dmitry Baryshkov 2025-07-05 234
a409b78fcdf724 Dmitry Baryshkov 2025-07-05 @235 flush_workqueue(kms->wq);
^^^^^^^
Dereferenced
a409b78fcdf724 Dmitry Baryshkov 2025-07-05 236
506efcba31296e Dmitry Baryshkov 2023-10-09 237 /* clean up event worker threads */
506efcba31296e Dmitry Baryshkov 2023-10-09 238 for (i = 0; i < priv->num_crtcs; i++) {
506efcba31296e Dmitry Baryshkov 2023-10-09 239 if (priv->event_thread[i].worker)
506efcba31296e Dmitry Baryshkov 2023-10-09 240 kthread_destroy_worker(priv->event_thread[i].worker);
506efcba31296e Dmitry Baryshkov 2023-10-09 241 }
506efcba31296e Dmitry Baryshkov 2023-10-09 242
506efcba31296e Dmitry Baryshkov 2023-10-09 243 drm_kms_helper_poll_fini(ddev);
506efcba31296e Dmitry Baryshkov 2023-10-09 244
506efcba31296e Dmitry Baryshkov 2023-10-09 245 msm_disp_snapshot_destroy(ddev);
506efcba31296e Dmitry Baryshkov 2023-10-09 246
506efcba31296e Dmitry Baryshkov 2023-10-09 247 pm_runtime_get_sync(dev);
506efcba31296e Dmitry Baryshkov 2023-10-09 248 msm_irq_uninstall(ddev);
506efcba31296e Dmitry Baryshkov 2023-10-09 249 pm_runtime_put_sync(dev);
506efcba31296e Dmitry Baryshkov 2023-10-09 250
506efcba31296e Dmitry Baryshkov 2023-10-09 @251 if (kms && kms->funcs)
^^^
Checked too late.
506efcba31296e Dmitry Baryshkov 2023-10-09 252 kms->funcs->destroy(kms);
506efcba31296e Dmitry Baryshkov 2023-10-09 253 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists