Hi Yikai, 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.11 next-20240925] [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/Yikai-Tsai/dt-bindings-hwmon-add-renesas-isl28022/20240925-111332 base: https://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git hwmon-next patch link: https://lore.kernel.org/r/20240925031131.14645-3-yikai.tsai.wiwynn%40gmail.com patch subject: [PATCH v7 2/2] hwmon: (isl28022) new driver for ISL28022 power monitor config: hexagon-allmodconfig (https://download.01.org/0day-ci/archive/20240926/202409260859.DetsBmBQ-lkp@xxxxxxxxx/config) compiler: clang version 20.0.0git (https://github.com/llvm/llvm-project 7773243d9916f98ba0ffce0c3a960e4aa9f03e81) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240926/202409260859.DetsBmBQ-lkp@xxxxxxxxx/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@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202409260859.DetsBmBQ-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from drivers/hwmon/isl28022.c:11: In file included from include/linux/i2c.h:19: In file included from include/linux/regulator/consumer.h:35: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:13: In file included from include/linux/cgroup.h:25: In file included from include/linux/kernel_stat.h:8: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:14: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:548:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 548 | val = __raw_readb(PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:561:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 561 | val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu' 37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) | ^ In file included from drivers/hwmon/isl28022.c:11: In file included from include/linux/i2c.h:19: In file included from include/linux/regulator/consumer.h:35: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:13: In file included from include/linux/cgroup.h:25: In file included from include/linux/kernel_stat.h:8: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:14: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:574:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 574 | val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr)); | ~~~~~~~~~~ ^ include/uapi/linux/byteorder/little_endian.h:35:51: note: expanded from macro '__le32_to_cpu' 35 | #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) | ^ In file included from drivers/hwmon/isl28022.c:11: In file included from include/linux/i2c.h:19: In file included from include/linux/regulator/consumer.h:35: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:13: In file included from include/linux/cgroup.h:25: In file included from include/linux/kernel_stat.h:8: In file included from include/linux/interrupt.h:11: In file included from include/linux/hardirq.h:11: In file included from ./arch/hexagon/include/generated/asm/hardirq.h:1: In file included from include/asm-generic/hardirq.h:17: In file included from include/linux/irq.h:20: In file included from include/linux/io.h:14: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:585:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 585 | __raw_writeb(value, PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:595:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 595 | __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ include/asm-generic/io.h:605:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 605 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); | ~~~~~~~~~~ ^ In file included from drivers/hwmon/isl28022.c:11: In file included from include/linux/i2c.h:19: In file included from include/linux/regulator/consumer.h:35: In file included from include/linux/suspend.h:5: In file included from include/linux/swap.h:9: In file included from include/linux/memcontrol.h:21: In file included from include/linux/mm.h:2228: include/linux/vmstat.h:514:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 514 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ >> drivers/hwmon/isl28022.c:396:22: error: incompatible pointer to integer conversion passing 'char[48]' to parameter of type 'int' [-Wint-conversion] 396 | dev_err_probe(dev, "renesas,shunt-range-microvolt invalid value %d\n", val); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:278:64: note: passing argument to parameter 'err' here 278 | __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); | ^ >> drivers/hwmon/isl28022.c:396:74: error: incompatible integer to pointer conversion passing 'u32' (aka 'unsigned int') to parameter of type 'const char *' [-Wint-conversion] 396 | dev_err_probe(dev, "renesas,shunt-range-microvolt invalid value %d\n", val); | ^~~ include/linux/dev_printk.h:278:81: note: passing argument to parameter 'fmt' here 278 | __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); | ^ drivers/hwmon/isl28022.c:406:22: error: incompatible pointer to integer conversion passing 'char[42]' to parameter of type 'int' [-Wint-conversion] 406 | dev_err_probe(dev, "renesas,average-samples invalid value %d\n", val); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:278:64: note: passing argument to parameter 'err' here 278 | __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); | ^ drivers/hwmon/isl28022.c:406:68: error: incompatible integer to pointer conversion passing 'u32' (aka 'unsigned int') to parameter of type 'const char *' [-Wint-conversion] 406 | dev_err_probe(dev, "renesas,average-samples invalid value %d\n", val); | ^~~ include/linux/dev_printk.h:278:81: note: passing argument to parameter 'fmt' here 278 | __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); | ^ drivers/hwmon/isl28022.c:414:21: error: incompatible pointer to integer conversion passing 'char[51]' to parameter of type 'int' [-Wint-conversion] 414 | dev_err_probe(dev, "renesas,shunt-resistor-microvolt invalid value %d\n", data->shunt); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:278:64: note: passing argument to parameter 'err' here 278 | __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); | ^ drivers/hwmon/isl28022.c:414:76: error: incompatible integer to pointer conversion passing 'u32' (aka 'unsigned int') to parameter of type 'const char *' [-Wint-conversion] 414 | dev_err_probe(dev, "renesas,shunt-resistor-microvolt invalid value %d\n", data->shunt); | ^~~~~~~~~~~ include/linux/dev_printk.h:278:81: note: passing argument to parameter 'fmt' here 278 | __printf(3, 4) int dev_err_probe(const struct device *dev, int err, const char *fmt, ...); | ^ 7 warnings and 6 errors generated. vim +396 drivers/hwmon/isl28022.c 346 347 /* 348 * read property values and make consistency checks. 349 * 350 * following values for shunt range and resistor are allowed: 351 * 40 mV -> gain 1, shunt min. 800 micro ohms 352 * 80 mV -> gain 2, shunt min. 1600 micro ohms 353 * 160 mV -> gain 4, shunt min. 3200 micro ohms 354 * 320 mV -> gain 8, shunt min. 6400 micro ohms 355 */ 356 static int isl28022_read_properties(struct device *dev, struct isl28022_data *data) 357 { 358 u32 val; 359 int err; 360 361 err = device_property_read_u32(dev, "shunt-resistor-micro-ohms", &val); 362 if (err == -EINVAL) 363 val = 10000; 364 else if (err < 0) 365 return err; 366 data->shunt = val; 367 368 err = device_property_read_u32(dev, "renesas,shunt-range-microvolt", &val); 369 if (err == -EINVAL) 370 val = 320000; 371 else if (err < 0) 372 return err; 373 374 switch (val) { 375 case 40000: 376 data->gain = 1; 377 if (data->shunt < 800) 378 goto shunt_invalid; 379 break; 380 case 80000: 381 data->gain = 2; 382 if (data->shunt < 1600) 383 goto shunt_invalid; 384 break; 385 case 160000: 386 data->gain = 4; 387 if (data->shunt < 3200) 388 goto shunt_invalid; 389 break; 390 case 320000: 391 data->gain = 8; 392 if (data->shunt < 6400) 393 goto shunt_invalid; 394 break; 395 default: > 396 dev_err_probe(dev, "renesas,shunt-range-microvolt invalid value %d\n", val); 397 return -EINVAL; 398 } 399 400 err = device_property_read_u32(dev, "renesas,average-samples", &val); 401 if (err == -EINVAL) 402 val = 1; 403 else if (err < 0) 404 return err; 405 if (val > 128 || hweight32(val) != 1) { 406 dev_err_probe(dev, "renesas,average-samples invalid value %d\n", val); 407 return -EINVAL; 408 } 409 data->average = val; 410 411 return 0; 412 413 shunt_invalid: 414 dev_err_probe(dev, "renesas,shunt-resistor-microvolt invalid value %d\n", data->shunt); 415 return -EINVAL; 416 } 417 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki