Hi Vladimir,

I love your patch! Perhaps something to improve:

[auto build test WARNING on ljones-mfd/for-mfd-next]
[also build test WARNING on v4.19-rc7 next-20181008]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Vladimir-Zapolskiy/mfd-pinctrl-add-initial-support-of-TI-DS90Ux9xx-ICs/20181009-090135
base:   https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
config: i386-allyesconfig (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All warnings (new ones prefixed by >>):

   drivers/mfd/ds90ux9xx-core.c: In function 'ds90ux9xx_probe':
>> drivers/mfd/ds90ux9xx-core.c:789:4: warning: 'id_code' may be used 
>> uninitialized in this function [-Wmaybe-uninitialized]
       dev_err(ds90ux9xx->dev,
       ^~~~~~~~~~~~~~~~~~~~~~~                                                  
                                     
   drivers/mfd/ds90ux9xx-core.c:755:14: note: 'id_code' was declared here
     const char *id_code;
                 ^~~~~~~

vim +/id_code +789 drivers/mfd/ds90ux9xx-core.c

   749  
   750  static int ds90ux9xx_read_ic_type(struct i2c_client *client,
   751                                    struct ds90ux9xx *ds90ux9xx)
   752  {
   753          u8 device_id[DEVICE_ID_LEN + 1] = { 0 };
   754          const struct i2c_device_id *id;
   755          const char *id_code;
   756          unsigned int i;
   757          int ret;
   758  
   759          ret = regmap_raw_read(ds90ux9xx->regmap, SER_DES_DEVICE_ID_REG,
   760                                device_id, DEVICE_ID_LEN);
   761          if (ret < 0) {
   762                  dev_err(ds90ux9xx->dev, "Failed to read device id: 
%d\n", ret);
   763                  return ret;
   764          }
   765  
   766          id = i2c_match_id(ds90ux9xx_ids, client);
   767          if (id) {
   768                  id_code = ds90ux9xx_devices[id->driver_data].id;
   769                  if (!strncmp(device_id, id_code, DEVICE_ID_LEN)) {
   770                          ds90ux9xx->dev_id = id->driver_data;
   771                          return 0;
   772                  }
   773          }
   774  
   775          /* DS90UH925 device quirk */
   776          if (!memcmp(device_id, "\0\0\0\0\0\0", DEVICE_ID_LEN)) {
   777                  if (id && id->driver_data != TI_DS90UH925)
   778                          dev_err(ds90ux9xx->dev,
   779                                  "Device ID returned all zeroes, 
assuming device is DS90UH925\n");
   780                  ds90ux9xx->dev_id = TI_DS90UH925;
   781                  return 0;
   782          }
   783  
   784          for (i = 0; i < ARRAY_SIZE(ds90ux9xx_devices); i++) {
   785                  if (strncmp(device_id, ds90ux9xx_devices[i].id, 
DEVICE_ID_LEN))
   786                          continue;
   787  
   788                  if (id)
 > 789                          dev_err(ds90ux9xx->dev,
   790                                  "Mismatch between probed device ID [%s] 
and HW device ID [%s]\n",
   791                                  id_code, device_id);
   792  
   793                  ds90ux9xx->dev_id = i;
   794                  return 0;
   795          }
   796  
   797          dev_err(ds90ux9xx->dev, "Device ID [%s] is not supported\n", 
device_id);
   798  
   799          return -ENODEV;
   800  }
   801  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to