drivers/platform/x86/intel/pmc/core.c:500 pmc_core_send_ltr_ignore() error: uninitialized symbol 'map'.

From: Dan Carpenter
Date: Sat Mar 02 2024 - 05:06:02 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5ad3cb0ed525b80c7f66c32b49a68c1f3510bec9
commit: 2bcef4529222424559ac9b45948ee9d82c09d9b5 platform/x86:intel/pmc: Enable debugfs multiple PMC support
config: i386-randconfig-141-20240302 (https://download.01.org/0day-ci/archive/20240302/202403021544.6qtkaAly-lkp@xxxxxxxxx/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)

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@xxxxxxxxx>
| Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
| Closes: https://lore.kernel.org/r/202403021544.6qtkaAly-lkp@xxxxxxxxx/

New smatch warnings:
drivers/platform/x86/intel/pmc/core.c:500 pmc_core_send_ltr_ignore() error: uninitialized symbol 'map'.

Old smatch warnings:
drivers/platform/x86/intel/pmc/core.c:500 pmc_core_send_ltr_ignore() error: uninitialized symbol 'pmc'.

vim +/map +500 drivers/platform/x86/intel/pmc/core.c

92f530edd7c955 drivers/platform/x86/intel/pmc/core.c Gayatri Kammela 2022-11-14 463 int pmc_core_send_ltr_ignore(struct pmc_dev *pmcdev, u32 value)
9c2ee19987ef02 drivers/platform/x86/intel_pmc_core.c Rajneesh Bhardwaj 2016-10-07 464 {
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 465 struct pmc *pmc;
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 466 const struct pmc_reg_map *map;
36974daf53888e drivers/platform/x86/intel_pmc_core.c David E. Box 2021-03-19 467 u32 reg;
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 468 int pmc_index, ltr_index;
9592438886756c drivers/platform/x86/intel_pmc_core.c Andy Shevchenko 2019-12-18 469
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 470 ltr_index = value;
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 471 /* For platforms with multiple pmcs, ltr index value given by user
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 472 * is based on the contiguous indexes from ltr_show output.
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 473 * pmc index and ltr index needs to be calculated from it.
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 474 */
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 475 for (pmc_index = 0; pmc_index < ARRAY_SIZE(pmcdev->pmcs) && ltr_index > 0; pmc_index++) {


ltr_index comes from the user via pmc_core_ltr_ignore_write() Assume
that it is zero.

2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 476 pmc = pmcdev->pmcs[pmc_index];
9c2ee19987ef02 drivers/platform/x86/intel_pmc_core.c Rajneesh Bhardwaj 2016-10-07 477
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 478 if (!pmc)
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 479 continue;
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 480
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 481 map = pmc->map;
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 482 if (ltr_index <= map->ltr_ignore_max)
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 483 break;
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 484
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 485 /* Along with IP names, ltr_show map includes CURRENT_PLATFORM
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 486 * and AGGREGATED_SYSTEM values per PMC. Take these two index
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 487 * values into account in ltr_index calculation. Also, to start
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 488 * ltr index from zero for next pmc, subtract it by 1.
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 489 */
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 490 ltr_index = ltr_index - (map->ltr_ignore_max + 2) - 1;
9c2ee19987ef02 drivers/platform/x86/intel_pmc_core.c Rajneesh Bhardwaj 2016-10-07 491 }
9c2ee19987ef02 drivers/platform/x86/intel_pmc_core.c Rajneesh Bhardwaj 2016-10-07 492
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 493 if (pmc_index >= ARRAY_SIZE(pmcdev->pmcs) || ltr_index < 0)
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 494 return -EINVAL;
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 495
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 496 pr_debug("ltr_ignore for pmc%d: ltr_index:%d\n", pmc_index, ltr_index);
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 497
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 498 mutex_lock(&pmcdev->lock);
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 499
1c709ae12dad6f drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 @500 reg = pmc_core_reg_read(pmc, map->ltr_ignore_offset);
^^^^^^^^^^^^^^^^^^^^^^
map is uninitialized.

2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 501 reg |= BIT(ltr_index);
1c709ae12dad6f drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 502 pmc_core_reg_write(pmc, map->ltr_ignore_offset, reg);
9c2ee19987ef02 drivers/platform/x86/intel_pmc_core.c Rajneesh Bhardwaj 2016-10-07 503
9c2ee19987ef02 drivers/platform/x86/intel_pmc_core.c Rajneesh Bhardwaj 2016-10-07 504 mutex_unlock(&pmcdev->lock);
36974daf53888e drivers/platform/x86/intel_pmc_core.c David E. Box 2021-03-19 505
2bcef452922242 drivers/platform/x86/intel/pmc/core.c Xi Pardee 2023-06-13 506 return 0;
36974daf53888e drivers/platform/x86/intel_pmc_core.c David E. Box 2021-03-19 507 }

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki