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: <202507130521.iaXBguXP-lkp@intel.com>
Date: Sun, 13 Jul 2025 06:16:04 +0800
From: kernel test robot <lkp@...el.com>
To: Antoniu Miclaus <antoniu.miclaus@...log.com>, jic23@...nel.org,
	robh@...nel.org, conor+dt@...nel.org, devicetree@...r.kernel.org,
	linux-iio@...r.kernel.org, linux-kernel@...r.kernel.org
Cc: oe-kbuild-all@...ts.linux.dev,
	Antoniu Miclaus <antoniu.miclaus@...log.com>
Subject: Re: [PATCH 3/3] iio: adc: add ade9000 support

Hi Antoniu,

kernel test robot noticed the following build warnings:

[auto build test WARNING on jic23-iio/togreg]
[also build test WARNING on robh/for-next linus/master v6.16-rc5 next-20250711]
[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/Antoniu-Miclaus/iio-add-power-and-energy-measurement-modifiers/20250712-022300
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link:    https://lore.kernel.org/r/20250711130241.159143-4-antoniu.miclaus%40analog.com
patch subject: [PATCH 3/3] iio: adc: add ade9000 support
config: arc-randconfig-r133-20250713 (https://download.01.org/0day-ci/archive/20250713/202507130521.iaXBguXP-lkp@intel.com/config)
compiler: arc-linux-gcc (GCC) 10.5.0
reproduce: (https://download.01.org/0day-ci/archive/20250713/202507130521.iaXBguXP-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/202507130521.iaXBguXP-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
>> drivers/iio/adc/ade9000.c:1176:40: sparse: sparse: cast truncates bits from constant value (100000 becomes 0)
   drivers/iio/adc/ade9000.c:1185:40: sparse: sparse: cast truncates bits from constant value (200000 becomes 0)
   drivers/iio/adc/ade9000.c:1194:40: sparse: sparse: cast truncates bits from constant value (400000 becomes 0)
   drivers/iio/adc/ade9000.c:1203:40: sparse: sparse: cast truncates bits from constant value (800000 becomes 0)
   drivers/iio/adc/ade9000.c:1212:40: sparse: sparse: cast truncates bits from constant value (1000000 becomes 0)
   drivers/iio/adc/ade9000.c:1221:40: sparse: sparse: cast truncates bits from constant value (2000000 becomes 0)
   drivers/iio/adc/ade9000.c:1230:40: sparse: sparse: cast truncates bits from constant value (40000 becomes 0)
   drivers/iio/adc/ade9000.c:1249:12: sparse: sparse: context imbalance in 'ade9000_read_raw' - different lock contexts for basic block
>> drivers/iio/adc/ade9000.c:1761:9: sparse: sparse: dereference of noderef expression
>> drivers/iio/adc/ade9000.c:1761:9: sparse: sparse: dereference of noderef expression

vim +1176 drivers/iio/adc/ade9000.c

  1051	
  1052	static irqreturn_t ade9000_irq1_thread(int irq, void *data)
  1053	{
  1054		struct iio_dev *indio_dev = data;
  1055		struct ade9000_state *st = iio_priv(indio_dev);
  1056		unsigned int bit = ADE9000_ST1_CROSSING_FIRST;
  1057		s64 timestamp = iio_get_time_ns(indio_dev);
  1058		u32 handled_irq = 0;
  1059		u32 interrupts;
  1060		u32 result;
  1061		u32 status;
  1062		u32 tmp;
  1063		int ret;
  1064	
  1065		if (!st->rst_done) {
  1066			ret = regmap_read(st->regmap, ADE9000_REG_STATUS1, &result);
  1067			if (ret)
  1068				return ret;
  1069	
  1070			if (result & ADE9000_ST1_RSTDONE_BIT)
  1071				st->rst_done = true;
  1072			else
  1073				dev_err(&st->spi->dev, "Error testing reset done");
  1074	
  1075			return IRQ_HANDLED;
  1076		}
  1077	
  1078		ret = regmap_read(st->regmap, ADE9000_REG_STATUS1, &status);
  1079		if (ret)
  1080			return IRQ_HANDLED;
  1081	
  1082		ret = regmap_read(st->regmap, ADE9000_REG_MASK1, &interrupts);
  1083		if (ret) {
  1084			dev_err(&st->spi->dev, "IRQ1 read status fail");
  1085			return IRQ_HANDLED;
  1086		}
  1087	
  1088		for_each_set_bit_from(bit, (unsigned long *)&interrupts,
  1089				      ADE9000_ST1_CROSSING_DEPTH){
  1090			tmp = status & BIT(bit);
  1091	
  1092			switch (tmp) {
  1093			case ADE9000_ST1_ZXVA_BIT:
  1094				iio_push_event(indio_dev,
  1095					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1096								    ADE9000_ST1_ZXVA_BIT,
  1097								    IIO_EV_TYPE_THRESH,
  1098								    IIO_EV_DIR_EITHER),
  1099					       timestamp);
  1100				handled_irq |= ADE9000_ST1_ZXVA_BIT;
  1101				break;
  1102			case ADE9000_ST1_ZXTOVA_BIT:
  1103				iio_push_event(indio_dev,
  1104					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1105								    ADE9000_ST1_ZXTOVA_BIT,
  1106								    IIO_EV_TYPE_THRESH,
  1107								    IIO_EV_DIR_EITHER),
  1108					       timestamp);
  1109				handled_irq |= ADE9000_ST1_ZXTOVA_BIT;
  1110				break;
  1111			case ADE9000_ST1_ZXIA_BIT:
  1112				iio_push_event(indio_dev,
  1113					       IIO_UNMOD_EVENT_CODE(IIO_CURRENT,
  1114								    ADE9000_ST1_ZXIA_BIT,
  1115								    IIO_EV_TYPE_THRESH,
  1116								    IIO_EV_DIR_EITHER),
  1117					       timestamp);
  1118				handled_irq |= ADE9000_ST1_ZXIA_BIT;
  1119				break;
  1120			case ADE9000_ST1_ZXVB_BIT:
  1121				iio_push_event(indio_dev,
  1122					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1123								    ADE9000_ST1_ZXVB_BIT,
  1124								    IIO_EV_TYPE_THRESH,
  1125								    IIO_EV_DIR_EITHER),
  1126					       timestamp);
  1127				handled_irq |= ADE9000_ST1_ZXVB_BIT;
  1128				break;
  1129			case ADE9000_ST1_ZXTOVB_BIT:
  1130				iio_push_event(indio_dev,
  1131					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1132								    ADE9000_ST1_ZXTOVB_BIT,
  1133								    IIO_EV_TYPE_THRESH,
  1134								    IIO_EV_DIR_EITHER),
  1135					       timestamp);
  1136				handled_irq |= ADE9000_ST1_ZXTOVB_BIT;
  1137				break;
  1138			case ADE9000_ST1_ZXIB_BIT:
  1139				iio_push_event(indio_dev,
  1140					       IIO_UNMOD_EVENT_CODE(IIO_CURRENT,
  1141								    ADE9000_ST1_ZXIB_BIT,
  1142								    IIO_EV_TYPE_THRESH,
  1143								    IIO_EV_DIR_EITHER),
  1144					       timestamp);
  1145				handled_irq |= ADE9000_ST1_ZXIB_BIT;
  1146				break;
  1147			case ADE9000_ST1_ZXVC_BIT:
  1148				iio_push_event(indio_dev,
  1149					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1150								    ADE9000_ST1_ZXVC_BIT,
  1151								    IIO_EV_TYPE_THRESH,
  1152								    IIO_EV_DIR_EITHER),
  1153					       timestamp);
  1154				handled_irq |= ADE9000_ST1_ZXVC_BIT;
  1155				break;
  1156			case ADE9000_ST1_ZXTOVC_BIT:
  1157				iio_push_event(indio_dev,
  1158					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1159								    ADE9000_ST1_ZXTOVC_BIT,
  1160								    IIO_EV_TYPE_THRESH,
  1161								    IIO_EV_DIR_EITHER),
  1162					       timestamp);
  1163				handled_irq |= ADE9000_ST1_ZXTOVC_BIT;
  1164				break;
  1165			case ADE9000_ST1_ZXIC_BIT:
  1166				iio_push_event(indio_dev,
  1167					       IIO_UNMOD_EVENT_CODE(IIO_CURRENT,
  1168								    ADE9000_ST1_ZXIC_BIT,
  1169								    IIO_EV_TYPE_THRESH,
  1170								    IIO_EV_DIR_EITHER),
  1171					       timestamp);
  1172				handled_irq |= ADE9000_ST1_ZXIC_BIT;
  1173				break;
  1174			case ADE9000_ST1_SWELLA_BIT:
  1175				iio_push_event(indio_dev,
> 1176					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1177								    ADE9000_ST1_SWELLA_BIT,
  1178								    IIO_EV_TYPE_THRESH,
  1179								    IIO_EV_DIR_RISING),
  1180					       timestamp);
  1181				handled_irq |= ADE9000_ST1_SWELLA_BIT;
  1182				break;
  1183			case ADE9000_ST1_SWELLB_BIT:
  1184				iio_push_event(indio_dev,
  1185					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1186								    ADE9000_ST1_SWELLB_BIT,
  1187								    IIO_EV_TYPE_THRESH,
  1188								    IIO_EV_DIR_RISING),
  1189					       timestamp);
  1190				handled_irq |= ADE9000_ST1_SWELLB_BIT;
  1191				break;
  1192			case ADE9000_ST1_SWELLC_BIT:
  1193				iio_push_event(indio_dev,
  1194					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1195								    ADE9000_ST1_SWELLC_BIT,
  1196								    IIO_EV_TYPE_THRESH,
  1197								    IIO_EV_DIR_RISING),
  1198					       timestamp);
  1199				handled_irq |= ADE9000_ST1_SWELLC_BIT;
  1200				break;
  1201			case ADE9000_ST1_DIPA_BIT:
  1202				iio_push_event(indio_dev,
  1203					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1204								    ADE9000_ST1_DIPA_BIT,
  1205								    IIO_EV_TYPE_THRESH,
  1206								    IIO_EV_DIR_FALLING),
  1207					       timestamp);
  1208				handled_irq |= ADE9000_ST1_DIPA_BIT;
  1209				break;
  1210			case ADE9000_ST1_DIPB_BIT:
  1211				iio_push_event(indio_dev,
  1212					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1213								    ADE9000_ST1_DIPB_BIT,
  1214								    IIO_EV_TYPE_THRESH,
  1215								    IIO_EV_DIR_FALLING),
  1216					       timestamp);
  1217				handled_irq |= ADE9000_ST1_DIPB_BIT;
  1218				break;
  1219			case ADE9000_ST1_DIPC_BIT:
  1220				iio_push_event(indio_dev,
  1221					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1222								    ADE9000_ST1_DIPC_BIT,
  1223								    IIO_EV_TYPE_THRESH,
  1224								    IIO_EV_DIR_FALLING),
  1225					       timestamp);
  1226				handled_irq |= ADE9000_ST1_DIPC_BIT;
  1227				break;
  1228			case ADE9000_ST1_SEQERR_BIT:
  1229				iio_push_event(indio_dev,
  1230					       IIO_UNMOD_EVENT_CODE(IIO_VOLTAGE,
  1231								    ADE9000_ST1_SEQERR_BIT,
  1232								    IIO_EV_TYPE_CHANGE,
  1233								    IIO_EV_DIR_NONE),
  1234					       timestamp);
  1235				handled_irq |= ADE9000_ST1_SEQERR_BIT;
  1236				break;
  1237			default:
  1238				return IRQ_HANDLED;
  1239			}
  1240		}
  1241	
  1242		ret = regmap_write(st->regmap, ADE9000_REG_STATUS1, handled_irq);
  1243		if (ret)
  1244			return ret;
  1245	
  1246		return IRQ_HANDLED;
  1247	}
  1248	

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