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

Reply via email to