All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: drivers/platform/x86/intel/pmc/core_ssram.c:141 pmc_core_get_lpm_req() error: uninitialized symbol 'ret'.
Date: Thu, 12 Dec 2024 19:14:21 +0800	[thread overview]
Message-ID: <202412121902.TbNaC8UJ-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Xi Pardee <xi.pardee@intel.com>
CC: Hans de Goede <hdegoede@redhat.com>
CC: "David E. Box" <david.e.box@linux.intel.com>
CC: "Ilpo Järvinen" <ilpo.jarvinen@linux.intel.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   231825b2e1ff6ba799c5eaf396d3ab2354e37c6b
commit: 4d621c3f02ba71cb8ed48b7c32ecb0910000cc28 platform/x86/intel/pmc: Retrieve LPM information using Intel PMT
date:   1 year ago
:::::: branch date: 13 hours ago
:::::: commit date: 1 year ago
config: x86_64-randconfig-r073-20241208 (https://download.01.org/0day-ci/archive/20241212/202412121902.TbNaC8UJ-lkp@intel.com/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)

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/202412121902.TbNaC8UJ-lkp@intel.com/

smatch warnings:
drivers/platform/x86/intel/pmc/core_ssram.c:141 pmc_core_get_lpm_req() error: uninitialized symbol 'ret'.

vim +/ret +141 drivers/platform/x86/intel/pmc/core_ssram.c

4d621c3f02ba71c Xi Pardee 2023-11-29   42  
4d621c3f02ba71c Xi Pardee 2023-11-29   43  static int pmc_core_get_lpm_req(struct pmc_dev *pmcdev, struct pmc *pmc)
4d621c3f02ba71c Xi Pardee 2023-11-29   44  {
4d621c3f02ba71c Xi Pardee 2023-11-29   45  	struct telem_endpoint *ep;
4d621c3f02ba71c Xi Pardee 2023-11-29   46  	const u8 *lpm_indices;
4d621c3f02ba71c Xi Pardee 2023-11-29   47  	int num_maps, mode_offset = 0;
4d621c3f02ba71c Xi Pardee 2023-11-29   48  	int ret, mode, i;
4d621c3f02ba71c Xi Pardee 2023-11-29   49  	int lpm_size;
4d621c3f02ba71c Xi Pardee 2023-11-29   50  	u32 guid;
4d621c3f02ba71c Xi Pardee 2023-11-29   51  
4d621c3f02ba71c Xi Pardee 2023-11-29   52  	lpm_indices = pmc->map->lpm_reg_index;
4d621c3f02ba71c Xi Pardee 2023-11-29   53  	num_maps = pmc->map->lpm_num_maps;
4d621c3f02ba71c Xi Pardee 2023-11-29   54  	lpm_size = LPM_MAX_NUM_MODES * num_maps;
4d621c3f02ba71c Xi Pardee 2023-11-29   55  
4d621c3f02ba71c Xi Pardee 2023-11-29   56  	guid = pmc_core_find_guid(pmcdev->regmap_list, pmc->map);
4d621c3f02ba71c Xi Pardee 2023-11-29   57  	if (!guid)
4d621c3f02ba71c Xi Pardee 2023-11-29   58  		return -ENXIO;
4d621c3f02ba71c Xi Pardee 2023-11-29   59  
4d621c3f02ba71c Xi Pardee 2023-11-29   60  	ep = pmt_telem_find_and_register_endpoint(pmcdev->ssram_pcidev, guid, 0);
4d621c3f02ba71c Xi Pardee 2023-11-29   61  	if (IS_ERR(ep)) {
4d621c3f02ba71c Xi Pardee 2023-11-29   62  		dev_dbg(&pmcdev->pdev->dev, "couldn't get telem endpoint %ld",
4d621c3f02ba71c Xi Pardee 2023-11-29   63  			PTR_ERR(ep));
4d621c3f02ba71c Xi Pardee 2023-11-29   64  		return -EPROBE_DEFER;
4d621c3f02ba71c Xi Pardee 2023-11-29   65  	}
4d621c3f02ba71c Xi Pardee 2023-11-29   66  
4d621c3f02ba71c Xi Pardee 2023-11-29   67  	pmc->lpm_req_regs = devm_kzalloc(&pmcdev->pdev->dev,
4d621c3f02ba71c Xi Pardee 2023-11-29   68  					 lpm_size * sizeof(u32),
4d621c3f02ba71c Xi Pardee 2023-11-29   69  					 GFP_KERNEL);
4d621c3f02ba71c Xi Pardee 2023-11-29   70  	if (!pmc->lpm_req_regs) {
4d621c3f02ba71c Xi Pardee 2023-11-29   71  		ret = -ENOMEM;
4d621c3f02ba71c Xi Pardee 2023-11-29   72  		goto unregister_ep;
4d621c3f02ba71c Xi Pardee 2023-11-29   73  	}
4d621c3f02ba71c Xi Pardee 2023-11-29   74  
4d621c3f02ba71c Xi Pardee 2023-11-29   75  	/*
4d621c3f02ba71c Xi Pardee 2023-11-29   76  	 * PMC Low Power Mode (LPM) table
4d621c3f02ba71c Xi Pardee 2023-11-29   77  	 *
4d621c3f02ba71c Xi Pardee 2023-11-29   78  	 * In telemetry space, the LPM table contains a 4 byte header followed
4d621c3f02ba71c Xi Pardee 2023-11-29   79  	 * by 8 consecutive mode blocks (one for each LPM mode). Each block
4d621c3f02ba71c Xi Pardee 2023-11-29   80  	 * has a 4 byte header followed by a set of registers that describe the
4d621c3f02ba71c Xi Pardee 2023-11-29   81  	 * IP state requirements for the given mode. The IP mapping is platform
4d621c3f02ba71c Xi Pardee 2023-11-29   82  	 * specific but the same for each block, making for easy analysis.
4d621c3f02ba71c Xi Pardee 2023-11-29   83  	 * Platforms only use a subset of the space to track the requirements
4d621c3f02ba71c Xi Pardee 2023-11-29   84  	 * for their IPs. Callers provide the requirement registers they use as
4d621c3f02ba71c Xi Pardee 2023-11-29   85  	 * a list of indices. Each requirement register is associated with an
4d621c3f02ba71c Xi Pardee 2023-11-29   86  	 * IP map that's maintained by the caller.
4d621c3f02ba71c Xi Pardee 2023-11-29   87  	 *
4d621c3f02ba71c Xi Pardee 2023-11-29   88  	 * Header
4d621c3f02ba71c Xi Pardee 2023-11-29   89  	 * +----+----------------------------+----------------------------+
4d621c3f02ba71c Xi Pardee 2023-11-29   90  	 * |  0 |      REVISION              |      ENABLED MODES         |
4d621c3f02ba71c Xi Pardee 2023-11-29   91  	 * +----+--------------+-------------+-------------+--------------+
4d621c3f02ba71c Xi Pardee 2023-11-29   92  	 *
4d621c3f02ba71c Xi Pardee 2023-11-29   93  	 * Low Power Mode 0 Block
4d621c3f02ba71c Xi Pardee 2023-11-29   94  	 * +----+--------------+-------------+-------------+--------------+
4d621c3f02ba71c Xi Pardee 2023-11-29   95  	 * |  1 |     SUB ID   |     SIZE    |   MAJOR     |   MINOR      |
4d621c3f02ba71c Xi Pardee 2023-11-29   96  	 * +----+--------------+-------------+-------------+--------------+
4d621c3f02ba71c Xi Pardee 2023-11-29   97  	 * |  2 |           LPM0 Requirements 0                           |
4d621c3f02ba71c Xi Pardee 2023-11-29   98  	 * +----+---------------------------------------------------------+
4d621c3f02ba71c Xi Pardee 2023-11-29   99  	 * |    |                  ...                                    |
4d621c3f02ba71c Xi Pardee 2023-11-29  100  	 * +----+---------------------------------------------------------+
4d621c3f02ba71c Xi Pardee 2023-11-29  101  	 * | 29 |           LPM0 Requirements 27                          |
4d621c3f02ba71c Xi Pardee 2023-11-29  102  	 * +----+---------------------------------------------------------+
4d621c3f02ba71c Xi Pardee 2023-11-29  103  	 *
4d621c3f02ba71c Xi Pardee 2023-11-29  104  	 * ...
4d621c3f02ba71c Xi Pardee 2023-11-29  105  	 *
4d621c3f02ba71c Xi Pardee 2023-11-29  106  	 * Low Power Mode 7 Block
4d621c3f02ba71c Xi Pardee 2023-11-29  107  	 * +----+--------------+-------------+-------------+--------------+
4d621c3f02ba71c Xi Pardee 2023-11-29  108  	 * |    |     SUB ID   |     SIZE    |   MAJOR     |   MINOR      |
4d621c3f02ba71c Xi Pardee 2023-11-29  109  	 * +----+--------------+-------------+-------------+--------------+
4d621c3f02ba71c Xi Pardee 2023-11-29  110  	 * | 60 |           LPM7 Requirements 0                           |
4d621c3f02ba71c Xi Pardee 2023-11-29  111  	 * +----+---------------------------------------------------------+
4d621c3f02ba71c Xi Pardee 2023-11-29  112  	 * |    |                  ...                                    |
4d621c3f02ba71c Xi Pardee 2023-11-29  113  	 * +----+---------------------------------------------------------+
4d621c3f02ba71c Xi Pardee 2023-11-29  114  	 * | 87 |           LPM7 Requirements 27                          |
4d621c3f02ba71c Xi Pardee 2023-11-29  115  	 * +----+---------------------------------------------------------+
4d621c3f02ba71c Xi Pardee 2023-11-29  116  	 *
4d621c3f02ba71c Xi Pardee 2023-11-29  117  	 */
4d621c3f02ba71c Xi Pardee 2023-11-29  118  	mode_offset = LPM_HEADER_OFFSET + LPM_MODE_OFFSET;
4d621c3f02ba71c Xi Pardee 2023-11-29  119  	pmc_for_each_mode(i, mode, pmcdev) {
4d621c3f02ba71c Xi Pardee 2023-11-29  120  		u32 *req_offset = pmc->lpm_req_regs + (mode * num_maps);
4d621c3f02ba71c Xi Pardee 2023-11-29  121  		int m;
4d621c3f02ba71c Xi Pardee 2023-11-29  122  
4d621c3f02ba71c Xi Pardee 2023-11-29  123  		for (m = 0; m < num_maps; m++) {
4d621c3f02ba71c Xi Pardee 2023-11-29  124  			u8 sample_id = lpm_indices[m] + mode_offset;
4d621c3f02ba71c Xi Pardee 2023-11-29  125  
4d621c3f02ba71c Xi Pardee 2023-11-29  126  			ret = pmt_telem_read32(ep, sample_id, req_offset, 1);
4d621c3f02ba71c Xi Pardee 2023-11-29  127  			if (ret) {
4d621c3f02ba71c Xi Pardee 2023-11-29  128  				dev_err(&pmcdev->pdev->dev,
4d621c3f02ba71c Xi Pardee 2023-11-29  129  					"couldn't read Low Power Mode requirements: %d\n", ret);
4d621c3f02ba71c Xi Pardee 2023-11-29  130  				devm_kfree(&pmcdev->pdev->dev, pmc->lpm_req_regs);
4d621c3f02ba71c Xi Pardee 2023-11-29  131  				goto unregister_ep;
4d621c3f02ba71c Xi Pardee 2023-11-29  132  			}
4d621c3f02ba71c Xi Pardee 2023-11-29  133  			++req_offset;
4d621c3f02ba71c Xi Pardee 2023-11-29  134  		}
4d621c3f02ba71c Xi Pardee 2023-11-29  135  		mode_offset += LPM_REG_COUNT + LPM_MODE_OFFSET;
4d621c3f02ba71c Xi Pardee 2023-11-29  136  	}
4d621c3f02ba71c Xi Pardee 2023-11-29  137  
4d621c3f02ba71c Xi Pardee 2023-11-29  138  unregister_ep:
4d621c3f02ba71c Xi Pardee 2023-11-29  139  	pmt_telem_unregister_endpoint(ep);
4d621c3f02ba71c Xi Pardee 2023-11-29  140  
4d621c3f02ba71c Xi Pardee 2023-11-29 @141  	return ret;
4d621c3f02ba71c Xi Pardee 2023-11-29  142  }
4d621c3f02ba71c Xi Pardee 2023-11-29  143  

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

             reply	other threads:[~2024-12-12 11:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-12 11:14 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-12-14  9:26 drivers/platform/x86/intel/pmc/core_ssram.c:141 pmc_core_get_lpm_req() error: uninitialized symbol 'ret' kernel test robot
2024-12-10  4:49 kernel test robot
2024-09-13  1:29 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202412121902.TbNaC8UJ-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.