:::::: 
:::::: 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

Reply via email to