:::::: :::::: 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: [email protected] BCC: [email protected] CC: [email protected] TO: Kate Hsuan <[email protected]> CC: Hans de Goede <[email protected]> CC: Andy Shevchenko <[email protected]> CC: Rajneesh Bhardwaj <[email protected]> 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 <[email protected]> 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 at line 1291 was first introduced by commit :::::: 952c15538e5346fcb0548370f25380b7bc62ed40 platform/x86: intel_pmc_core: Add requirements file to debugfs :::::: TO: Gayatri Kammela <[email protected]> :::::: CC: Hans de Goede <[email protected]> -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
