All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.