lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202508062201.bWDZGD03-lkp@intel.com>
Date: Wed, 6 Aug 2025 23:12:01 +0800
From: kernel test robot <lkp@...el.com>
To: "a.shimko" <artyom.shimko@...il.com>, linux-hwmon@...r.kernel.org
Cc: oe-kbuild-all@...ts.linux.dev, "a.shimko" <artyom.shimko@...il.com>,
	linux-kernel@...r.kernel.org, sudeep.holla@....com,
	cristian.marussi@....com, jdelvare@...e.com,
	guenter.roeck@...ux.com
Subject: Re: [PATCH 1/3] hwmon: scmi: Add default case with debug output

Hi a.shimko,

kernel test robot noticed the following build errors:

[auto build test ERROR on groeck-staging/hwmon-next]
[also build test ERROR on linus/master v6.16 next-20250806]
[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/a-shimko/hwmon-scmi-Add-default-case-with-debug-output/20250806-122638
base:   https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next
patch link:    https://lore.kernel.org/r/20250805125003.12573-2-artyom.shimko%40gmail.com
patch subject: [PATCH 1/3] hwmon: scmi: Add default case with debug output
config: arc-randconfig-001-20250806 (https://download.01.org/0day-ci/archive/20250806/202508062201.bWDZGD03-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 12.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250806/202508062201.bWDZGD03-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202508062201.bWDZGD03-lkp@intel.com/

All errors (new ones prefixed by >>):

   drivers/hwmon/scmi-hwmon.c: In function 'scmi_hwmon_probe':
>> drivers/hwmon/scmi-hwmon.c:278:17: error: 'default' label not within a switch statement
     278 |                 default:
         |                 ^~~~~~~


vim +/default +278 drivers/hwmon/scmi-hwmon.c

   228	
   229	static int scmi_hwmon_probe(struct scmi_device *sdev)
   230	{
   231		int i, idx;
   232		u16 nr_sensors;
   233		enum hwmon_sensor_types type;
   234		struct scmi_sensors *scmi_sensors;
   235		const struct scmi_sensor_info *sensor;
   236		int nr_count[hwmon_max] = {0}, nr_types = 0, nr_count_temp = 0;
   237		const struct hwmon_chip_info *chip_info;
   238		struct device *hwdev, *dev = &sdev->dev;
   239		struct hwmon_channel_info *scmi_hwmon_chan;
   240		const struct hwmon_channel_info **ptr_scmi_ci;
   241		const struct scmi_handle *handle = sdev->handle;
   242		struct scmi_protocol_handle *ph;
   243	
   244		if (!handle)
   245			return -ENODEV;
   246	
   247		sensor_ops = handle->devm_protocol_get(sdev, SCMI_PROTOCOL_SENSOR, &ph);
   248		if (IS_ERR(sensor_ops))
   249			return PTR_ERR(sensor_ops);
   250	
   251		nr_sensors = sensor_ops->count_get(ph);
   252		if (!nr_sensors)
   253			return -EIO;
   254	
   255		scmi_sensors = devm_kzalloc(dev, sizeof(*scmi_sensors), GFP_KERNEL);
   256		if (!scmi_sensors)
   257			return -ENOMEM;
   258	
   259		scmi_sensors->ph = ph;
   260	
   261		for (i = 0; i < nr_sensors; i++) {
   262			sensor = sensor_ops->info_get(ph, i);
   263			if (!sensor)
   264				return -EINVAL;
   265	
   266			switch (sensor->type) {
   267			case TEMPERATURE_C:
   268			case VOLTAGE:
   269			case CURRENT:
   270			case POWER:
   271			case ENERGY:
   272				type = scmi_types[sensor->type];
   273				if (!nr_count[type])
   274					nr_types++;
   275				nr_count[type]++;
   276				break;
   277			}
 > 278			default:
   279				dev_dbg(dev, "Skipping unsupported sensor ID:%d Type:%d (%s)\n",
   280					i, sensor->type, sensor->name ? sensor->name : "unnamed");
   281				continue;
   282		}
   283	
   284		if (nr_count[hwmon_temp])
   285			nr_count_temp = nr_count[hwmon_temp];
   286	
   287		scmi_hwmon_chan = devm_kcalloc(dev, nr_types, sizeof(*scmi_hwmon_chan),
   288					       GFP_KERNEL);
   289		if (!scmi_hwmon_chan)
   290			return -ENOMEM;
   291	
   292		ptr_scmi_ci = devm_kcalloc(dev, nr_types + 1, sizeof(*ptr_scmi_ci),
   293					   GFP_KERNEL);
   294		if (!ptr_scmi_ci)
   295			return -ENOMEM;
   296	
   297		scmi_chip_info.info = ptr_scmi_ci;
   298		chip_info = &scmi_chip_info;
   299	
   300		for (type = 0; type < hwmon_max; type++) {
   301			if (!nr_count[type])
   302				continue;
   303	
   304			scmi_hwmon_add_chan_info(scmi_hwmon_chan, dev, nr_count[type],
   305						 type, hwmon_attributes[type]);
   306			*ptr_scmi_ci++ = scmi_hwmon_chan++;
   307	
   308			scmi_sensors->info[type] =
   309				devm_kcalloc(dev, nr_count[type],
   310					     sizeof(*scmi_sensors->info), GFP_KERNEL);
   311			if (!scmi_sensors->info[type])
   312				return -ENOMEM;
   313		}
   314	
   315		for (i = nr_sensors - 1; i >= 0 ; i--) {
   316			sensor = sensor_ops->info_get(ph, i);
   317			if (!sensor)
   318				continue;
   319	
   320			switch (sensor->type) {
   321			case TEMPERATURE_C:
   322			case VOLTAGE:
   323			case CURRENT:
   324			case POWER:
   325			case ENERGY:
   326				type = scmi_types[sensor->type];
   327				idx = --nr_count[type];
   328				*(scmi_sensors->info[type] + idx) = sensor;
   329				break;
   330			default:
   331				dev_dbg(dev, "Skipping unsupported sensor ID:%d Type:%d (%s)\n",
   332					i, sensor->type, sensor->name ? sensor->name : "unnamed");
   333				continue;
   334			}
   335		}
   336	
   337		hwdev = devm_hwmon_device_register_with_info(dev, "scmi_sensors",
   338							     scmi_sensors, chip_info,
   339							     NULL);
   340		if (IS_ERR(hwdev))
   341			return PTR_ERR(hwdev);
   342	
   343		for (i = 0; i < nr_count_temp; i++) {
   344			int ret;
   345	
   346			sensor = *(scmi_sensors->info[hwmon_temp] + i);
   347			if (!sensor)
   348				continue;
   349	
   350			/*
   351			 * Warn on any misconfiguration related to thermal zones but
   352			 * bail out of probing only on memory errors.
   353			 */
   354			ret = scmi_thermal_sensor_register(dev, ph, sensor);
   355			if (ret) {
   356				if (ret == -ENOMEM)
   357					return ret;
   358				dev_warn(dev,
   359					 "Thermal zone misconfigured for %s. err=%d\n",
   360					 sensor->name, ret);
   361			}
   362		}
   363	
   364		return 0;
   365	}
   366	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ