All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/platform/x86/intel/pmc/core.c:1291:18: warning: Array index 'i' is used before limits check. [arrayIndexThenCheck]
Date: Wed, 03 Aug 2022 07:22:28 +0800	[thread overview]
Message-ID: <202208030709.cRW50ibV-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 11813 bytes --]

:::::: 
:::::: Manual check reason: "low confidence static check warning: drivers/platform/x86/intel/pmc/core.c:1291:18: warning: Array index 'i' is used before limits check. [arrayIndexThenCheck]"
:::::: 

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Kate Hsuan <hpa@redhat.com>
CC: Hans de Goede <hdegoede@redhat.com>
CC: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
CC: Rajneesh Bhardwaj <irenic.rajneesh@gmail.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   569bede0cff5e98c0f862d486406b79dcada8eea
commit: fa082a7cf5a66a42a06da048afd972e2cc1b67ea platform/x86: intel_pmc_core: Move to intel sub-directory
date:   12 months ago
:::::: branch date: 53 minutes ago
:::::: commit date: 12 months ago
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout fa082a7cf5a66a42a06da048afd972e2cc1b67ea
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

cppcheck warnings: (new ones prefixed by >>)
>> drivers/platform/x86/intel/pmc/core.c:1519:7: warning: Local variable 'mode' shadows outer variable [shadowVariable]
     int mode = pri_order[p];
         ^
   drivers/platform/x86/intel/pmc/core.c:1489:6: note: Shadowed declaration
    int mode, i, p;
        ^
   drivers/platform/x86/intel/pmc/core.c:1519:7: note: Shadow variable
     int mode = pri_order[p];
         ^
>> drivers/usb/core/hub.c:4885:8: warning: Local variable 'delay' shadows outer variable [shadowVariable]
      u32 delay;
          ^
   drivers/usb/core/hub.c:4634:12: note: Shadowed declaration
    unsigned  delay = HUB_SHORT_RESET_TIME;
              ^
   drivers/usb/core/hub.c:4885:8: note: Shadow variable
      u32 delay;
          ^

cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> drivers/platform/x86/intel/pmc/core.c:1291:18: warning: Array index 'i' is used before limits check. [arrayIndexThenCheck]
     for (i = 0; map[i].name && i < len; i++) {
                    ^
>> drivers/platform/x86/intel/pmc/core.c:921:59: warning: Parameter 'addr_xram' can be declared with const [constParameter]
   static int pmc_core_send_msg(struct pmc_dev *pmcdev, u32 *addr_xram)
                                                             ^
--
>> drivers/usb/core/otg_productlist.h:58:10: warning: Redundant initialization for 'id'. The initialized value is overwritten before it is read. [redundantInitialization]
    for (id = productlist_table; id->match_flags; id++) {
            ^
   drivers/usb/core/otg_productlist.h:43:27: note: id is initialized
    struct usb_device_id *id = productlist_table;
                             ^
   drivers/usb/core/otg_productlist.h:58:10: note: id is overwritten
    for (id = productlist_table; id->match_flags; id++) {
            ^
>> drivers/usb/core/hub.c:1981:79: warning: Parameter 'owner' can be declared with const [constParameter]
   void usb_hub_release_all_ports(struct usb_device *hdev, struct usb_dev_state *owner)
                                                                                 ^
   drivers/usb/core/hub.c:1966:27: warning: Parameter 'owner' can be declared with const [constParameter]
       struct usb_dev_state *owner)
                             ^

vim +/i +1291 drivers/platform/x86/intel/pmc/core.c

952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1258  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1259  static int pmc_core_substate_req_regs_show(struct seq_file *s, void *unused)
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1260  {
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1261  	struct pmc_dev *pmcdev = s->private;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1262  	const struct pmc_bit_map **maps = pmcdev->map->lpm_sts;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1263  	const struct pmc_bit_map *map;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1264  	const int num_maps = pmcdev->map->lpm_num_maps;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1265  	u32 sts_offset = pmcdev->map->lpm_status_offset;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1266  	u32 *lpm_req_regs = pmcdev->lpm_req_regs;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1267  	int mp;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1268  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1269  	/* Display the header */
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1270  	pmc_core_substate_req_header_show(s);
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1271  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1272  	/* Loop over maps */
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1273  	for (mp = 0; mp < num_maps; mp++) {
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1274  		u32 req_mask = 0;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1275  		u32 lpm_status;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1276  		int mode, idx, i, len = 32;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1277  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1278  		/*
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1279  		 * Capture the requirements and create a mask so that we only
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1280  		 * show an element if it's required for at least one of the
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1281  		 * enabled low power modes
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1282  		 */
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1283  		pmc_for_each_mode(idx, mode, pmcdev)
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1284  			req_mask |= lpm_req_regs[mp + (mode * num_maps)];
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1285  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1286  		/* Get the last latched status for this map */
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1287  		lpm_status = pmc_core_reg_read(pmcdev, sts_offset + (mp * 4));
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1288  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1289  		/*  Loop over elements in this map */
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1290  		map = maps[mp];
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16 @1291  		for (i = 0; map[i].name && i < len; i++) {
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1292  			u32 bit_mask = map[i].bit_mask;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1293  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1294  			if (!(bit_mask & req_mask))
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1295  				/*
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1296  				 * Not required for any enabled states
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1297  				 * so don't display
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1298  				 */
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1299  				continue;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1300  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1301  			/* Display the element name in the first column */
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1302  			seq_printf(s, "%30s |", map[i].name);
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1303  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1304  			/* Loop over the enabled states and display if required */
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1305  			pmc_for_each_mode(idx, mode, pmcdev) {
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1306  				if (lpm_req_regs[mp + (mode * num_maps)] & bit_mask)
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1307  					seq_printf(s, " %9s |",
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1308  						   "Required");
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1309  				else
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1310  					seq_printf(s, " %9s |", " ");
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1311  			}
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1312  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1313  			/* In Status column, show the last captured state of this agent */
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1314  			if (lpm_status & bit_mask)
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1315  				seq_printf(s, " %9s |", "Yes");
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1316  			else
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1317  				seq_printf(s, " %9s |", " ");
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1318  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1319  			seq_puts(s, "\n");
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1320  		}
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1321  	}
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1322  
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1323  	return 0;
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1324  }
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1325  DEFINE_SHOW_ATTRIBUTE(pmc_core_substate_req_regs);
952c15538e5346 drivers/platform/x86/intel_pmc_core.c Gayatri Kammela 2021-04-16  1326  

:::::: The code@line 1291 was first introduced by commit
:::::: 952c15538e5346fcb0548370f25380b7bc62ed40 platform/x86: intel_pmc_core: Add requirements file to debugfs

:::::: TO: Gayatri Kammela <gayatri.kammela@intel.com>
:::::: CC: Hans de Goede <hdegoede@redhat.com>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

                 reply	other threads:[~2022-08-02 23:22 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=202208030709.cRW50ibV-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /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.