BCC: l...@intel.com CC: kbuild-...@lists.01.org CC: linux-ker...@vger.kernel.org TO: Srinivas Kandagatla <srinivas.kandaga...@linaro.org> CC: Vinod Koul <vk...@kernel.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 1c23f9e627a7b412978b4e852793c5e3c3efc555 commit: aa1262ca66957183ea1fb32a067e145b995f3744 soundwire: qcom: Check device status before reading devid date: 7 weeks ago :::::: branch date: 5 hours ago :::::: commit date: 7 weeks ago config: riscv-randconfig-m031-20220819 (https://download.01.org/0day-ci/archive/20220822/202208221349.svvfmjzv-...@intel.com/config) compiler: riscv64-linux-gcc (GCC) 12.1.0 If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <l...@intel.com> Reported-by: Dan Carpenter <dan.carpen...@oracle.com> New smatch warnings: drivers/soundwire/qcom.c:478 qcom_swrm_enumerate() error: buffer overflow 'ctrl->status' 11 <= 11 Old smatch warnings: arch/riscv/include/asm/atomic.h:204 arch_atomic_fetch_add_unless() warn: inconsistent indenting drivers/soundwire/qcom.c:1323 qcom_swrm_probe() warn: passing zero to 'PTR_ERR' vim +478 drivers/soundwire/qcom.c a6e6581942caa0 Srinivas Kandagatla 2021-03-30 464 a6e6581942caa0 Srinivas Kandagatla 2021-03-30 465 static int qcom_swrm_enumerate(struct sdw_bus *bus) a6e6581942caa0 Srinivas Kandagatla 2021-03-30 466 { a6e6581942caa0 Srinivas Kandagatla 2021-03-30 467 struct qcom_swrm_ctrl *ctrl = to_qcom_sdw(bus); a6e6581942caa0 Srinivas Kandagatla 2021-03-30 468 struct sdw_slave *slave, *_s; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 469 struct sdw_slave_id id; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 470 u32 val1, val2; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 471 bool found; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 472 u64 addr; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 473 int i; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 474 char *buf1 = (char *)&val1, *buf2 = (char *)&val2; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 475 a6e6581942caa0 Srinivas Kandagatla 2021-03-30 476 for (i = 1; i <= SDW_MAX_DEVICES; i++) { aa1262ca669571 Srinivas Kandagatla 2022-07-06 477 /* do not continue if the status is Not Present */ aa1262ca669571 Srinivas Kandagatla 2022-07-06 @478 if (!ctrl->status[i]) aa1262ca669571 Srinivas Kandagatla 2022-07-06 479 continue; aa1262ca669571 Srinivas Kandagatla 2022-07-06 480 a6e6581942caa0 Srinivas Kandagatla 2021-03-30 481 /*SCP_Devid5 - Devid 4*/ a6e6581942caa0 Srinivas Kandagatla 2021-03-30 482 ctrl->reg_read(ctrl, SWRM_ENUMERATOR_SLAVE_DEV_ID_1(i), &val1); a6e6581942caa0 Srinivas Kandagatla 2021-03-30 483 a6e6581942caa0 Srinivas Kandagatla 2021-03-30 484 /*SCP_Devid3 - DevId 2 Devid 1 Devid 0*/ a6e6581942caa0 Srinivas Kandagatla 2021-03-30 485 ctrl->reg_read(ctrl, SWRM_ENUMERATOR_SLAVE_DEV_ID_2(i), &val2); a6e6581942caa0 Srinivas Kandagatla 2021-03-30 486 a6e6581942caa0 Srinivas Kandagatla 2021-03-30 487 if (!val1 && !val2) a6e6581942caa0 Srinivas Kandagatla 2021-03-30 488 break; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 489 a6e6581942caa0 Srinivas Kandagatla 2021-03-30 490 addr = buf2[1] | (buf2[0] << 8) | (buf1[3] << 16) | a6e6581942caa0 Srinivas Kandagatla 2021-03-30 491 ((u64)buf1[2] << 24) | ((u64)buf1[1] << 32) | a6e6581942caa0 Srinivas Kandagatla 2021-03-30 492 ((u64)buf1[0] << 40); a6e6581942caa0 Srinivas Kandagatla 2021-03-30 493 a6e6581942caa0 Srinivas Kandagatla 2021-03-30 494 sdw_extract_slave_id(bus, addr, &id); a6e6581942caa0 Srinivas Kandagatla 2021-03-30 495 found = false; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 496 /* Now compare with entries */ a6e6581942caa0 Srinivas Kandagatla 2021-03-30 497 list_for_each_entry_safe(slave, _s, &bus->slaves, node) { a6e6581942caa0 Srinivas Kandagatla 2021-03-30 498 if (sdw_compare_devid(slave, id) == 0) { a6e6581942caa0 Srinivas Kandagatla 2021-03-30 499 qcom_swrm_set_slave_dev_num(bus, slave, i); a6e6581942caa0 Srinivas Kandagatla 2021-03-30 500 found = true; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 501 break; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 502 } a6e6581942caa0 Srinivas Kandagatla 2021-03-30 503 } a6e6581942caa0 Srinivas Kandagatla 2021-03-30 504 a6e6581942caa0 Srinivas Kandagatla 2021-03-30 505 if (!found) { a6e6581942caa0 Srinivas Kandagatla 2021-03-30 506 qcom_swrm_set_slave_dev_num(bus, NULL, i); a6e6581942caa0 Srinivas Kandagatla 2021-03-30 507 sdw_slave_add(bus, &id, NULL); a6e6581942caa0 Srinivas Kandagatla 2021-03-30 508 } a6e6581942caa0 Srinivas Kandagatla 2021-03-30 509 } a6e6581942caa0 Srinivas Kandagatla 2021-03-30 510 06dd96738d6183 Srinivas Kandagatla 2021-03-30 511 complete(&ctrl->enumeration); a6e6581942caa0 Srinivas Kandagatla 2021-03-30 512 return 0; a6e6581942caa0 Srinivas Kandagatla 2021-03-30 513 } a6e6581942caa0 Srinivas Kandagatla 2021-03-30 514 -- 0-DAY CI Kernel Test Service https://01.org/lkp _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org