[PATCH] gpu: ipu-v3: fix OF node reference leaks in ipu_add_client_devices()
kernel test robot
lkp at intel.com
Mon Dec 23 19:35:20 UTC 2024
Hi Joe,
kernel test robot noticed the following build warnings:
[auto build test WARNING on pza/reset/next]
[also build test WARNING on linus/master pza/imx-drm/next v6.13-rc4 next-20241220]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Joe-Hattori/gpu-ipu-v3-fix-OF-node-reference-leaks-in-ipu_add_client_devices/20241215-112258
base: https://git.pengutronix.de/git/pza/linux reset/next
patch link: https://lore.kernel.org/r/20241215032222.2507759-1-joe%40pf.is.s.u-tokyo.ac.jp
patch subject: [PATCH] gpu: ipu-v3: fix OF node reference leaks in ipu_add_client_devices()
config: powerpc-randconfig-r072-20241223 (https://download.01.org/0day-ci/archive/20241224/202412240257.hBU9oQRB-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 14.2.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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412240257.hBU9oQRB-lkp@intel.com/
smatch warnings:
drivers/gpu/ipu-v3/ipu-common.c:1189 ipu_add_client_devices() warn: always true condition '(--i >= 0) => (0-u32max >= 0)'
drivers/gpu/ipu-v3/ipu-common.c:1189 ipu_add_client_devices() warn: always true condition '(--i >= 0) => (0-u32max >= 0)'
vim +1189 drivers/gpu/ipu-v3/ipu-common.c
1138
1139 static int ipu_add_client_devices(struct ipu_soc *ipu, unsigned long ipu_base)
1140 {
1141 struct device *dev = ipu->dev;
1142 unsigned i;
1143 int id, ret;
1144
1145 mutex_lock(&ipu_client_id_mutex);
1146 id = ipu_client_id;
1147 ipu_client_id += ARRAY_SIZE(client_reg);
1148 mutex_unlock(&ipu_client_id_mutex);
1149
1150 for (i = 0; i < ARRAY_SIZE(client_reg); i++) {
1151 struct ipu_platform_reg *reg = &client_reg[i];
1152 struct platform_device *pdev;
1153 struct device_node *of_node;
1154
1155 /* Associate subdevice with the corresponding port node */
1156 of_node = of_graph_get_port_by_id(dev->of_node, i);
1157 if (!of_node) {
1158 dev_info(dev,
1159 "no port@%d node in %pOF, not using %s%d\n",
1160 i, dev->of_node,
1161 (i / 2) ? "DI" : "CSI", i % 2);
1162 continue;
1163 }
1164
1165 pdev = platform_device_alloc(reg->name, id++);
1166 if (!pdev) {
1167 ret = -ENOMEM;
1168 of_node_put(of_node);
1169 goto err_register;
1170 }
1171
1172 pdev->dev.parent = dev;
1173
1174 reg->pdata.of_node = of_node;
1175 ret = platform_device_add_data(pdev, ®->pdata,
1176 sizeof(reg->pdata));
1177 if (!ret)
1178 ret = platform_device_add(pdev);
1179 if (ret) {
1180 platform_device_put(pdev);
1181 of_node_put(of_node);
1182 goto err_register;
1183 }
1184 }
1185
1186 return 0;
1187
1188 err_register:
> 1189 while (--i >= 0)
1190 of_node_put(client_reg[i].pdata.of_node);
1191 platform_device_unregister_children(to_platform_device(dev));
1192
1193 return ret;
1194 }
1195
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the dri-devel
mailing list