* drivers/dma/idxd/init.c:227 idxd_setup_wqs() error: uninitialized symbol 'conf_dev'.
@ 2025-05-27 17:57 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-05-27 17:57 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: Shuai Xue <xueshuai@linux.alibaba.com>
CC: Vinod Koul <vkoul@kernel.org>
CC: Dave Jiang <dave.jiang@intel.com>
CC: Fenghua Yu <fenghuay@nvidia.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 44ed0f35df343d00b8d38006854f96e333104a66
commit: 3fd2f4bc010cdfbc07dd21018dc65bd9370eb7a4 dmaengine: idxd: fix memory leak in error handling path of idxd_setup_wqs
date: 13 days ago
:::::: branch date: 2 hours ago
:::::: commit date: 13 days ago
config: x86_64-randconfig-161-20250527 (https://download.01.org/0day-ci/archive/20250528/202505280104.d7OKH0O1-lkp@intel.com/config)
compiler: clang version 20.1.2 (https://github.com/llvm/llvm-project 58df0ef89dd64126512e4ee27b4ac3fd8ddf6247)
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/202505280104.d7OKH0O1-lkp@intel.com/
smatch warnings:
drivers/dma/idxd/init.c:227 idxd_setup_wqs() error: uninitialized symbol 'conf_dev'.
vim +/conf_dev +227 drivers/dma/idxd/init.c
ddf742d4f3f12a Dave Jiang 2021-05-25 157
7c5dd23e57c14c Dave Jiang 2021-04-15 158 static int idxd_setup_wqs(struct idxd_device *idxd)
7c5dd23e57c14c Dave Jiang 2021-04-15 159 {
7c5dd23e57c14c Dave Jiang 2021-04-15 160 struct device *dev = &idxd->pdev->dev;
7c5dd23e57c14c Dave Jiang 2021-04-15 161 struct idxd_wq *wq;
700af3a0a26cba Dave Jiang 2021-07-15 162 struct device *conf_dev;
7c5dd23e57c14c Dave Jiang 2021-04-15 163 int i, rc;
7c5dd23e57c14c Dave Jiang 2021-04-15 164
7c5dd23e57c14c Dave Jiang 2021-04-15 165 idxd->wqs = kcalloc_node(idxd->max_wqs, sizeof(struct idxd_wq *),
7c5dd23e57c14c Dave Jiang 2021-04-15 166 GFP_KERNEL, dev_to_node(dev));
7c5dd23e57c14c Dave Jiang 2021-04-15 167 if (!idxd->wqs)
7c5dd23e57c14c Dave Jiang 2021-04-15 168 return -ENOMEM;
7c5dd23e57c14c Dave Jiang 2021-04-15 169
de5819b9948931 Jerry Snitselaar 2022-09-28 170 idxd->wq_enable_map = bitmap_zalloc_node(idxd->max_wqs, GFP_KERNEL, dev_to_node(dev));
de5819b9948931 Jerry Snitselaar 2022-09-28 171 if (!idxd->wq_enable_map) {
3fd2f4bc010cdf Shuai Xue 2025-04-04 172 rc = -ENOMEM;
3fd2f4bc010cdf Shuai Xue 2025-04-04 173 goto err_bitmap;
de5819b9948931 Jerry Snitselaar 2022-09-28 174 }
de5819b9948931 Jerry Snitselaar 2022-09-28 175
7c5dd23e57c14c Dave Jiang 2021-04-15 176 for (i = 0; i < idxd->max_wqs; i++) {
7c5dd23e57c14c Dave Jiang 2021-04-15 177 wq = kzalloc_node(sizeof(*wq), GFP_KERNEL, dev_to_node(dev));
7c5dd23e57c14c Dave Jiang 2021-04-15 178 if (!wq) {
7c5dd23e57c14c Dave Jiang 2021-04-15 179 rc = -ENOMEM;
7c5dd23e57c14c Dave Jiang 2021-04-15 180 goto err;
7c5dd23e57c14c Dave Jiang 2021-04-15 181 }
7c5dd23e57c14c Dave Jiang 2021-04-15 182
700af3a0a26cba Dave Jiang 2021-07-15 183 idxd_dev_set_type(&wq->idxd_dev, IDXD_DEV_WQ);
700af3a0a26cba Dave Jiang 2021-07-15 184 conf_dev = wq_confdev(wq);
7c5dd23e57c14c Dave Jiang 2021-04-15 185 wq->id = i;
7c5dd23e57c14c Dave Jiang 2021-04-15 186 wq->idxd = idxd;
700af3a0a26cba Dave Jiang 2021-07-15 187 device_initialize(wq_confdev(wq));
700af3a0a26cba Dave Jiang 2021-07-15 188 conf_dev->parent = idxd_confdev(idxd);
700af3a0a26cba Dave Jiang 2021-07-15 189 conf_dev->bus = &dsa_bus_type;
700af3a0a26cba Dave Jiang 2021-07-15 190 conf_dev->type = &idxd_wq_device_type;
700af3a0a26cba Dave Jiang 2021-07-15 191 rc = dev_set_name(conf_dev, "wq%d.%d", idxd->id, wq->id);
3fd2f4bc010cdf Shuai Xue 2025-04-04 192 if (rc < 0)
7c5dd23e57c14c Dave Jiang 2021-04-15 193 goto err;
7c5dd23e57c14c Dave Jiang 2021-04-15 194
7c5dd23e57c14c Dave Jiang 2021-04-15 195 mutex_init(&wq->wq_lock);
04922b7445a195 Dave Jiang 2021-04-15 196 init_waitqueue_head(&wq->err_queue);
93a40a6d742892 Dave Jiang 2021-04-20 197 init_completion(&wq->wq_dead);
56fc39f5a36794 Dave Jiang 2021-10-26 198 init_completion(&wq->wq_resurrect);
92452a72ebdf12 Dave Jiang 2021-10-26 199 wq->max_xfer_bytes = WQ_DEFAULT_MAX_XFER;
e8dbd6445dd6b3 Xiaochen Shen 2022-10-01 200 idxd_wq_set_max_batch_size(idxd->data->type, wq, WQ_DEFAULT_MAX_BATCH);
7930d85535751b Dave Jiang 2021-11-29 201 wq->enqcmds_retries = IDXD_ENQCMDS_RETRIES;
7c5dd23e57c14c Dave Jiang 2021-04-15 202 wq->wqcfg = kzalloc_node(idxd->wqcfg_size, GFP_KERNEL, dev_to_node(dev));
7c5dd23e57c14c Dave Jiang 2021-04-15 203 if (!wq->wqcfg) {
7c5dd23e57c14c Dave Jiang 2021-04-15 204 rc = -ENOMEM;
7c5dd23e57c14c Dave Jiang 2021-04-15 205 goto err;
7c5dd23e57c14c Dave Jiang 2021-04-15 206 }
b0325aefd398d8 Dave Jiang 2022-09-17 207
b0325aefd398d8 Dave Jiang 2022-09-17 208 if (idxd->hw.wq_cap.op_config) {
b0325aefd398d8 Dave Jiang 2022-09-17 209 wq->opcap_bmap = bitmap_zalloc(IDXD_MAX_OPCAP_BITS, GFP_KERNEL);
b0325aefd398d8 Dave Jiang 2022-09-17 210 if (!wq->opcap_bmap) {
b0325aefd398d8 Dave Jiang 2022-09-17 211 rc = -ENOMEM;
3fd2f4bc010cdf Shuai Xue 2025-04-04 212 goto err_opcap_bmap;
b0325aefd398d8 Dave Jiang 2022-09-17 213 }
b0325aefd398d8 Dave Jiang 2022-09-17 214 bitmap_copy(wq->opcap_bmap, idxd->opcap_bmap, IDXD_MAX_OPCAP_BITS);
b0325aefd398d8 Dave Jiang 2022-09-17 215 }
b022f59725f0ae Fenghua Yu 2023-04-07 216 mutex_init(&wq->uc_lock);
b022f59725f0ae Fenghua Yu 2023-04-07 217 xa_init(&wq->upasid_xa);
7c5dd23e57c14c Dave Jiang 2021-04-15 218 idxd->wqs[i] = wq;
7c5dd23e57c14c Dave Jiang 2021-04-15 219 }
7c5dd23e57c14c Dave Jiang 2021-04-15 220
7c5dd23e57c14c Dave Jiang 2021-04-15 221 return 0;
7c5dd23e57c14c Dave Jiang 2021-04-15 222
3fd2f4bc010cdf Shuai Xue 2025-04-04 223 err_opcap_bmap:
3fd2f4bc010cdf Shuai Xue 2025-04-04 224 kfree(wq->wqcfg);
3fd2f4bc010cdf Shuai Xue 2025-04-04 225
7c5dd23e57c14c Dave Jiang 2021-04-15 226 err:
3fd2f4bc010cdf Shuai Xue 2025-04-04 @227 put_device(conf_dev);
3fd2f4bc010cdf Shuai Xue 2025-04-04 228 kfree(wq);
3fd2f4bc010cdf Shuai Xue 2025-04-04 229
700af3a0a26cba Dave Jiang 2021-07-15 230 while (--i >= 0) {
700af3a0a26cba Dave Jiang 2021-07-15 231 wq = idxd->wqs[i];
3fd2f4bc010cdf Shuai Xue 2025-04-04 232 if (idxd->hw.wq_cap.op_config)
3fd2f4bc010cdf Shuai Xue 2025-04-04 233 bitmap_free(wq->opcap_bmap);
3fd2f4bc010cdf Shuai Xue 2025-04-04 234 kfree(wq->wqcfg);
700af3a0a26cba Dave Jiang 2021-07-15 235 conf_dev = wq_confdev(wq);
700af3a0a26cba Dave Jiang 2021-07-15 236 put_device(conf_dev);
3fd2f4bc010cdf Shuai Xue 2025-04-04 237 kfree(wq);
3fd2f4bc010cdf Shuai Xue 2025-04-04 238
700af3a0a26cba Dave Jiang 2021-07-15 239 }
3fd2f4bc010cdf Shuai Xue 2025-04-04 240 bitmap_free(idxd->wq_enable_map);
3fd2f4bc010cdf Shuai Xue 2025-04-04 241
3fd2f4bc010cdf Shuai Xue 2025-04-04 242 err_bitmap:
3fd2f4bc010cdf Shuai Xue 2025-04-04 243 kfree(idxd->wqs);
3fd2f4bc010cdf Shuai Xue 2025-04-04 244
7c5dd23e57c14c Dave Jiang 2021-04-15 245 return rc;
7c5dd23e57c14c Dave Jiang 2021-04-15 246 }
7c5dd23e57c14c Dave Jiang 2021-04-15 247
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-05-27 17:58 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-27 17:57 drivers/dma/idxd/init.c:227 idxd_setup_wqs() error: uninitialized symbol 'conf_dev' kernel test robot
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.