Re: [PATCH 4/7] mfd: ds90ux9xx: add TI DS90Ux9xx de-/serializer MFD driver

From: kbuild test robot
Date: Tue Oct 09 2018 - 00:09:22 EST


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