[PATCH v2 06/21] pinctrl: equilibrium: Convert to use struct pingroup

kernel test robot lkp at intel.com
Fri Nov 24 05:19:45 PST 2023


Hi Andy,

kernel test robot noticed the following build warnings:

[auto build test WARNING on linusw-pinctrl/devel]
[also build test WARNING on linusw-pinctrl/for-next next-20231124]
[cannot apply to geert-renesas-drivers/renesas-pinctrl pinctrl-samsung/for-next linus/master v6.7-rc2]
[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/Andy-Shevchenko/pinctrl-qcom-lpass-lpi-Remove-unused-member-in-struct-lpi_pingroup/20231124-043212
base:   https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
patch link:    https://lore.kernel.org/r/20231123193355.3400852-7-andriy.shevchenko%40linux.intel.com
patch subject: [PATCH v2 06/21] pinctrl: equilibrium: Convert to use struct pingroup
config: i386-randconfig-141-20231124 (https://download.01.org/0day-ci/archive/20231124/202311241401.ZPILPdov-lkp@intel.com/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce: (https://download.01.org/0day-ci/archive/20231124/202311241401.ZPILPdov-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202311241401.ZPILPdov-lkp@intel.com/

smatch warnings:
drivers/pinctrl/pinctrl-equilibrium.c:719 eqbr_build_groups() warn: unsigned 'grp->npins' is never less than zero.

vim +719 drivers/pinctrl/pinctrl-equilibrium.c

   702	
   703	static int eqbr_build_groups(struct eqbr_pinctrl_drv_data *drvdata)
   704	{
   705		struct device *dev = drvdata->dev;
   706		struct device_node *node = dev->of_node;
   707		unsigned int *pins, *pinmux, pin_id, pinmux_id;
   708		struct pingroup group, *grp = &group;
   709		struct device_node *np;
   710		struct property *prop;
   711		int j, err;
   712	
   713		for_each_child_of_node(node, np) {
   714			prop = of_find_property(np, "groups", NULL);
   715			if (!prop)
   716				continue;
   717	
   718			grp->npins = of_property_count_u32_elems(np, "pins");
 > 719			if (grp->npins < 0) {
   720				dev_err(dev, "No pins in the group: %s\n", prop->name);
   721				of_node_put(np);
   722				return -EINVAL;
   723			}
   724			grp->name = prop->value;
   725			pins = devm_kcalloc(dev, grp->npins, sizeof(*pins), GFP_KERNEL);
   726			if (!pins) {
   727				of_node_put(np);
   728				return -ENOMEM;
   729			}
   730			grp->pins = pins;
   731	
   732			pinmux = devm_kcalloc(dev, grp->npins, sizeof(*pinmux), GFP_KERNEL);
   733			if (!pinmux) {
   734				of_node_put(np);
   735				return -ENOMEM;
   736			}
   737	
   738			for (j = 0; j < grp->npins; j++) {
   739				if (of_property_read_u32_index(np, "pins", j, &pin_id)) {
   740					dev_err(dev, "Group %s: Read intel pins id failed\n",
   741						grp->name);
   742					of_node_put(np);
   743					return -EINVAL;
   744				}
   745				if (pin_id >= drvdata->pctl_desc.npins) {
   746					dev_err(dev, "Group %s: Invalid pin ID, idx: %d, pin %u\n",
   747						grp->name, j, pin_id);
   748					of_node_put(np);
   749					return -EINVAL;
   750				}
   751				pins[j] = pin_id;
   752				if (of_property_read_u32_index(np, "pinmux", j, &pinmux_id)) {
   753					dev_err(dev, "Group %s: Read intel pinmux id failed\n",
   754						grp->name);
   755					of_node_put(np);
   756					return -EINVAL;
   757				}
   758				pinmux[j] = pinmux_id;
   759			}
   760	
   761			err = pinctrl_generic_add_group(drvdata->pctl_dev,
   762							grp->name, grp->pins, grp->npins,
   763							pinmux);
   764			if (err < 0) {
   765				dev_err(dev, "Failed to register group %s\n", grp->name);
   766				of_node_put(np);
   767				return err;
   768			}
   769			memset(&group, 0, sizeof(group));
   770			pinmux = NULL;
   771		}
   772	
   773		return 0;
   774	}
   775	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki



More information about the Linux-mediatek mailing list