:::::: :::::: Manual check reason: "low confidence static check warning: drivers/thunderbolt/nvm.c:75:17: sparse: sparse: typename in expression" ::::::
BCC: l...@intel.com CC: kbuild-...@lists.01.org In-Reply-To: <20220805092224.2536-1-chloe_c...@asmedia.com.tw> References: <20220805092224.2536-1-chloe_c...@asmedia.com.tw> TO: Szuying Chen <chensiyin...@gmail.com> TO: andreas.noe...@gmail.com TO: michael.ja...@intel.com TO: mika.westerb...@linux.intel.com TO: yehezkel...@gmail.com TO: linux-...@vger.kernel.org TO: linux-ker...@vger.kernel.org CC: yd_ts...@asmedia.com.tw CC: richard_...@asmedia.com.tw CC: chloe_c...@asmedia.com.tw Hi Szuying, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.19 next-20220805] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Szuying-Chen/thunderbolt-thunderbolt-add-vendor-s-NVM-formats/20220805-172732 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git b2a88c212e652e94f1e4b635910972ac57ba4e97 :::::: branch date: 15 hours ago :::::: commit date: 15 hours ago config: i386-randconfig-s001 (https://download.01.org/0day-ci/archive/20220806/202208060712.imnsszbl-...@intel.com/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://github.com/intel-lab-lkp/linux/commit/cc64350d27db3b30e5ceef2b5d6a3c48b9a4d989 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Szuying-Chen/thunderbolt-thunderbolt-add-vendor-s-NVM-formats/20220805-172732 git checkout cc64350d27db3b30e5ceef2b5d6a3c48b9a4d989 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=i386 SHELL=/bin/bash drivers/thunderbolt/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <l...@intel.com> sparse warnings: (new ones prefixed by >>) >> drivers/thunderbolt/nvm.c:75:17: sparse: sparse: typename in expression drivers/thunderbolt/nvm.c:75:24: sparse: sparse: Expected ; at end of statement drivers/thunderbolt/nvm.c:75:24: sparse: sparse: got tb_nvm drivers/thunderbolt/nvm.c:109:17: sparse: sparse: typename in expression drivers/thunderbolt/nvm.c:109:26: sparse: sparse: Expected ; at end of statement drivers/thunderbolt/nvm.c:109:26: sparse: sparse: got int drivers/thunderbolt/nvm.c:75:17: sparse: sparse: undefined identifier 'struct' drivers/thunderbolt/nvm.c:79:17: sparse: sparse: undefined identifier 'nvm' drivers/thunderbolt/nvm.c:80:28: sparse: sparse: undefined identifier 'nvm' drivers/thunderbolt/nvm.c:81:39: sparse: sparse: undefined identifier 'nvm' drivers/thunderbolt/nvm.c:89:17: sparse: sparse: undefined identifier 'nvm' drivers/thunderbolt/nvm.c:94:17: sparse: sparse: undefined identifier 'nvm' drivers/thunderbolt/nvm.c:95:17: sparse: sparse: undefined identifier 'nvm' drivers/thunderbolt/nvm.c:97:41: sparse: sparse: undefined identifier 'nvm' drivers/thunderbolt/nvm.c:101:45: sparse: sparse: undefined identifier 'nvm' drivers/thunderbolt/nvm.c:105:27: sparse: sparse: undefined identifier 'nvm' drivers/thunderbolt/nvm.c:109:17: sparse: sparse: undefined identifier 'unsigned' drivers/thunderbolt/nvm.c:116:17: sparse: sparse: undefined identifier 'image_size' drivers/thunderbolt/nvm.c:117:21: sparse: sparse: undefined identifier 'image_size' drivers/thunderbolt/nvm.c:121:57: sparse: sparse: undefined identifier 'image_size' vim +75 drivers/thunderbolt/nvm.c cc64350d27db3b Szuying Chen 2022-08-05 62 cc64350d27db3b Szuying Chen 2022-08-05 63 static int tb_nvm_vendor_apply(struct tb_switch *sw, unsigned int handle) cc64350d27db3b Szuying Chen 2022-08-05 64 { cc64350d27db3b Szuying Chen 2022-08-05 65 int ret = 0; cc64350d27db3b Szuying Chen 2022-08-05 66 cc64350d27db3b Szuying Chen 2022-08-05 67 switch (handle) { cc64350d27db3b Szuying Chen 2022-08-05 68 case 0: cc64350d27db3b Szuying Chen 2022-08-05 69 if (sw->no_nvm_upgrade) cc64350d27db3b Szuying Chen 2022-08-05 70 sw->no_nvm_upgrade = false; cc64350d27db3b Szuying Chen 2022-08-05 71 cc64350d27db3b Szuying Chen 2022-08-05 72 break; cc64350d27db3b Szuying Chen 2022-08-05 73 cc64350d27db3b Szuying Chen 2022-08-05 74 case 1: cc64350d27db3b Szuying Chen 2022-08-05 @75 struct tb_nvm *nvm; cc64350d27db3b Szuying Chen 2022-08-05 76 u32 val; cc64350d27db3b Szuying Chen 2022-08-05 77 u32 nvm_size; cc64350d27db3b Szuying Chen 2022-08-05 78 cc64350d27db3b Szuying Chen 2022-08-05 79 nvm = tb_nvm_alloc(&sw->dev); cc64350d27db3b Szuying Chen 2022-08-05 80 if (IS_ERR(nvm)) { cc64350d27db3b Szuying Chen 2022-08-05 81 ret = PTR_ERR(nvm); cc64350d27db3b Szuying Chen 2022-08-05 82 break; cc64350d27db3b Szuying Chen 2022-08-05 83 } cc64350d27db3b Szuying Chen 2022-08-05 84 cc64350d27db3b Szuying Chen 2022-08-05 85 ret = usb4_switch_nvm_read(sw, NVM_Date, &val, sizeof(val)); cc64350d27db3b Szuying Chen 2022-08-05 86 if (ret) cc64350d27db3b Szuying Chen 2022-08-05 87 break; cc64350d27db3b Szuying Chen 2022-08-05 88 cc64350d27db3b Szuying Chen 2022-08-05 89 nvm->vendor.date = (((u8)val) << 0x10 | ((u8)(val >> 0x8)) << 0x8 | (u8)(val >> 0x10)); cc64350d27db3b Szuying Chen 2022-08-05 90 ret = usb4_switch_nvm_read(sw, NVM_CUSTOMER_ID, &val, sizeof(val)); cc64350d27db3b Szuying Chen 2022-08-05 91 if (ret) cc64350d27db3b Szuying Chen 2022-08-05 92 break; cc64350d27db3b Szuying Chen 2022-08-05 93 cc64350d27db3b Szuying Chen 2022-08-05 94 nvm->vendor.customerID = (((u8)val) << 0x8 | ((u8)(val >> 0x8))); cc64350d27db3b Szuying Chen 2022-08-05 95 nvm->vendor.version = (u8)(val >> 0x10); cc64350d27db3b Szuying Chen 2022-08-05 96 nvm_size = SZ_512K; cc64350d27db3b Szuying Chen 2022-08-05 97 ret = tb_nvm_add_active(nvm, nvm_size, tb_switch_nvm_read); cc64350d27db3b Szuying Chen 2022-08-05 98 if (ret) cc64350d27db3b Szuying Chen 2022-08-05 99 break; cc64350d27db3b Szuying Chen 2022-08-05 100 cc64350d27db3b Szuying Chen 2022-08-05 101 ret = tb_nvm_add_non_active(nvm, NVM_MAX_SIZE, tb_switch_nvm_write); cc64350d27db3b Szuying Chen 2022-08-05 102 if (ret) cc64350d27db3b Szuying Chen 2022-08-05 103 break; cc64350d27db3b Szuying Chen 2022-08-05 104 cc64350d27db3b Szuying Chen 2022-08-05 105 sw->nvm = nvm; cc64350d27db3b Szuying Chen 2022-08-05 106 break; cc64350d27db3b Szuying Chen 2022-08-05 107 cc64350d27db3b Szuying Chen 2022-08-05 108 case 2: cc64350d27db3b Szuying Chen 2022-08-05 109 unsigned int image_size; cc64350d27db3b Szuying Chen 2022-08-05 110 const u8 *buf = sw->nvm->buf; cc64350d27db3b Szuying Chen 2022-08-05 111 cc64350d27db3b Szuying Chen 2022-08-05 112 if (!buf) { cc64350d27db3b Szuying Chen 2022-08-05 113 ret = -EINVAL; cc64350d27db3b Szuying Chen 2022-08-05 114 break; cc64350d27db3b Szuying Chen 2022-08-05 115 } cc64350d27db3b Szuying Chen 2022-08-05 116 image_size = sw->nvm->buf_data_size; cc64350d27db3b Szuying Chen 2022-08-05 117 if (image_size < NVM_MIN_SIZE || image_size > NVM_MAX_SIZE) { cc64350d27db3b Szuying Chen 2022-08-05 118 ret = -EINVAL; cc64350d27db3b Szuying Chen 2022-08-05 119 break; cc64350d27db3b Szuying Chen 2022-08-05 120 } cc64350d27db3b Szuying Chen 2022-08-05 121 ret = usb4_switch_nvm_write(sw, 0, buf, image_size); cc64350d27db3b Szuying Chen 2022-08-05 122 if (!ret) cc64350d27db3b Szuying Chen 2022-08-05 123 sw->nvm->flushed = true; cc64350d27db3b Szuying Chen 2022-08-05 124 cc64350d27db3b Szuying Chen 2022-08-05 125 break; cc64350d27db3b Szuying Chen 2022-08-05 126 cc64350d27db3b Szuying Chen 2022-08-05 127 default: cc64350d27db3b Szuying Chen 2022-08-05 128 break; cc64350d27db3b Szuying Chen 2022-08-05 129 } cc64350d27db3b Szuying Chen 2022-08-05 130 cc64350d27db3b Szuying Chen 2022-08-05 131 if ((handle == 1) && (ret != 0)) cc64350d27db3b Szuying Chen 2022-08-05 132 tb_nvm_free(sw->nvm); cc64350d27db3b Szuying Chen 2022-08-05 133 cc64350d27db3b Szuying Chen 2022-08-05 134 return ret; cc64350d27db3b Szuying Chen 2022-08-05 135 } cc64350d27db3b Szuying Chen 2022-08-05 136 -- 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