Hi Herve, kernel test robot noticed the following build warnings: [auto build test WARNING on tip/irq/core] [also build test WARNING on linus/master v6.9-rc6 next-20240430] [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/Herve-Codina/mfd-syscon-Add-reference-counting-and-device-managed-support/20240430-164912 base: tip/irq/core patch link: https://lore.kernel.org/r/20240430083730.134918-13-herve.codina%40bootlin.com patch subject: [PATCH 12/17] irqchip: Add support for LAN966x OIC config: hexagon-randconfig-r071-20240501 (https://download.01.org/0day-ci/archive/20240501/202405010842.zim8X3E5-lkp@xxxxxxxxx/config) compiler: clang version 15.0.7 (https://github.com/llvm/llvm-project.git 8dfdcc7b7bf66834a761bd8de445840ef68e4d1a) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240501/202405010842.zim8X3E5-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/202405010842.zim8X3E5-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): In file included from drivers/irqchip/irq-lan966x-oic.c:15: 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:13: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] val = __raw_readb(PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 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' #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) ^ In file included from drivers/irqchip/irq-lan966x-oic.c:15: 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:13: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] 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' #define __le32_to_cpu(x) ((__force __u32)(__le32)(x)) ^ In file included from drivers/irqchip/irq-lan966x-oic.c:15: 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:13: In file included from arch/hexagon/include/asm/io.h:328: include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] __raw_writeb(value, PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:594:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] __raw_writew((u16 __force)cpu_to_le16(value), PCI_IOBASE + addr); ~~~~~~~~~~ ^ include/asm-generic/io.h:604:59: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic] __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr); ~~~~~~~~~~ ^ >> drivers/irqchip/irq-lan966x-oic.c:225:6: warning: variable 'ret' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] if (lan966x_oic->irq < 0) { ^~~~~~~~~~~~~~~~~~~~ drivers/irqchip/irq-lan966x-oic.c:253:9: note: uninitialized use occurs here return ret; ^~~ drivers/irqchip/irq-lan966x-oic.c:225:2: note: remove the 'if' if its condition is always false if (lan966x_oic->irq < 0) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/irqchip/irq-lan966x-oic.c:204:9: note: initialize the variable 'ret' to silence this warning int ret; ^ = 0 7 warnings generated. vim +225 drivers/irqchip/irq-lan966x-oic.c 197 198 static int lan966x_oic_probe(struct platform_device *pdev) 199 { 200 struct device_node *node = pdev->dev.of_node; 201 struct lan966x_oic_data *lan966x_oic; 202 struct device *dev = &pdev->dev; 203 struct irq_chip_generic *gc; 204 int ret; 205 int i; 206 207 lan966x_oic = devm_kmalloc(dev, sizeof(*lan966x_oic), GFP_KERNEL); 208 if (!lan966x_oic) 209 return -ENOMEM; 210 211 lan966x_oic->regs = devm_platform_ioremap_resource(pdev, 0); 212 if (IS_ERR(lan966x_oic->regs)) 213 return dev_err_probe(dev, PTR_ERR(lan966x_oic->regs), 214 "failed to map resource\n"); 215 216 lan966x_oic->domain = irq_domain_alloc_linear(of_node_to_fwnode(node), 217 LAN966X_OIC_NR_IRQ, 218 &irq_generic_chip_ops, NULL); 219 if (!lan966x_oic->domain) { 220 dev_err(dev, "failed to create an IRQ domain\n"); 221 return -EINVAL; 222 } 223 224 lan966x_oic->irq = platform_get_irq(pdev, 0); > 225 if (lan966x_oic->irq < 0) { 226 dev_err_probe(dev, lan966x_oic->irq, "failed to get the IRQ\n"); 227 goto err_domain_free; 228 } 229 230 ret = irq_alloc_domain_generic_chips(lan966x_oic->domain, 32, 1, "lan966x-oic", 231 handle_level_irq, 0, 0, 0); 232 if (ret) { 233 dev_err_probe(dev, ret, "failed to alloc irq domain gc\n"); 234 goto err_domain_free; 235 } 236 237 /* Init chips */ 238 BUILD_BUG_ON(DIV_ROUND_UP(LAN966X_OIC_NR_IRQ, 32) != ARRAY_SIZE(lan966x_oic_chip_regs)); 239 for (i = 0; i < ARRAY_SIZE(lan966x_oic_chip_regs); i++) { 240 gc = irq_get_domain_generic_chip(lan966x_oic->domain, i * 32); 241 lan966x_oic_chip_init(lan966x_oic, gc, &lan966x_oic_chip_regs[i]); 242 } 243 244 irq_set_chained_handler_and_data(lan966x_oic->irq, lan966x_oic_irq_handler, 245 lan966x_oic->domain); 246 247 irq_domain_publish(lan966x_oic->domain); 248 platform_set_drvdata(pdev, lan966x_oic); 249 return 0; 250 251 err_domain_free: 252 irq_domain_free(lan966x_oic->domain); 253 return ret; 254 } 255 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki