Messages in this thread |  | | Date | Sat, 24 Dec 2022 14:04:20 +0300 | From | Dan Carpenter <> | Subject | drivers/gpu/drm/stm/ltdc.c:1124 ltdc_crtc_set_crc_source() warn: variable dereferenced before check 'crtc' (see line 1119) |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 72a85e2b0a1e1e6fb4ee51ae902730212b2de25c commit: 79b44684a14e363d24c299b772f037344ad8c8dc drm/stm: ltdc: add support for CRC hashing feature config: arm-randconfig-m041-20221224 compiler: arm-linux-gnueabi-gcc (GCC) 12.1.0
If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@intel.com> | Reported-by: Dan Carpenter <error27@gmail.com>
New smatch warnings: drivers/gpu/drm/stm/ltdc.c:1124 ltdc_crtc_set_crc_source() warn: variable dereferenced before check 'crtc' (see line 1119)
Old smatch warnings: drivers/gpu/drm/stm/ltdc.c:901 ltdc_crtc_mode_set_nofb() warn: iterator used outside loop: 'bridge' drivers/gpu/drm/stm/ltdc.c:911 ltdc_crtc_mode_set_nofb() warn: pm_runtime_get_sync() also returns 1 on success
vim +/crtc +1124 drivers/gpu/drm/stm/ltdc.c
79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1117 static int ltdc_crtc_set_crc_source(struct drm_crtc *crtc, const char *source) 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1118 { 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 @1119 struct ltdc_device *ldev = crtc_to_ltdc(crtc); ^^^^ Derefernce
79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1120 int ret; 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1121 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1122 DRM_DEBUG_DRIVER("\n"); 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1123 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 @1124 if (!crtc) ^^^^^ Checked too late.
79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1125 return -ENODEV; 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1126 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1127 if (source && strcmp(source, "auto") == 0) { 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1128 ldev->crc_active = true; 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1129 ret = regmap_set_bits(ldev->regmap, LTDC_GCR, GCR_CRCEN); 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1130 } else if (!source) { 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1131 ldev->crc_active = false; 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1132 ret = regmap_clear_bits(ldev->regmap, LTDC_GCR, GCR_CRCEN); 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1133 } else { 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1134 ret = -EINVAL; 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1135 } 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1136 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1137 ldev->crc_skip_count = 0; 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1138 return ret; 79b44684a14e36 Raphael Gallais-Pou 2022-02-11 1139 }
-- 0-DAY CI Kernel Test Service https://01.org/lkp
|  |