Re: Build error in 6.16-rc1 in drivers/mfd/88pm860x-core.c

From: Mario Limonciello
Date: Sun Jun 08 2025 - 22:32:04 EST




On 6/8/25 8:58 PM, Peter Schneider wrote:
Hi all,

I just tried to test-build 6.16-rc1 on my good old 2-socket Ivy Bridge Xeon E5-2697 v2 server, running Proxmox/Debian 12 (Bookworm) with GCC 12.2. I received the following build error:

  CC      drivers/mfd/88pm860x-core.o
drivers/mfd/88pm860x-core.c: In function 'device_irq_init':
drivers/mfd/88pm860x-core.c:576:29: error: unused variable 'node' [- Werror=unused-variable]
  576 |         struct device_node *node = i2c->dev.of_node;
      |                             ^~~~
cc1: all warnings being treated as errors
make[4]: *** [scripts/Makefile.build:287: drivers/mfd/88pm860x-core.o] Error 1
make[3]: *** [scripts/Makefile.build:554: drivers/mfd] Error 2
make[2]: *** [scripts/Makefile.build:554: drivers] Error 2
make[1]: *** [/usr/src/linux/Makefile:2006: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2


My config file is attached. I always build with CONFIG_WERROR=y (same as I do in all of my regular test builds of Greg's stable-RC releases).

I do too; I'm pretty surprised that that the build robots didn't catch this.


I'm not a Kernel developer nor a C programmer, I only have superficial knowledge of C (but I love to test and to tinker), so I don't quite understand this warning/error message. Becauses some lines below, the node variable is used as a paramter to the of_fwnode_handle macro (from include/linux/of.h):

        irq_domain_create_legacy(of_fwnode_handle(node), nr_irqs, chip- >irq_base, 0,
                                 &pm860x_irq_domain_ops, chip);

Does that not count as variable usage to the compiler?
It's not because there is a macro when CONFIG_OF is not defined that assigns it as NULL. So to the compiler there is no variable use.

Digging in somewhat deeper, I found that probably the patch from [1] is missing in 6.16 and should have been included?!

It was sent during the merge window, it's not a surprise that it wasn't picked up. I just sent it in case they had a chance to grab it because not being able to compile with CONFIG_WERROR means other things can more easily get missed too.


When I apply that patch, my build succeeds.

[1]: https://lore.kernel.org/all/20250602201008.1850418-1- superm1@xxxxxxxxxx/


Beste Grüße,
Peter Schneider