Naresh Kamboju <naresh.kamb...@linaro.org> writes: > On Fri, 3 May 2024 at 13:26, Michael Ellerman <m...@ellerman.id.au> wrote: >> >> With -Wextra clang warns about pointer arithmetic using a null pointer. >> When building with CONFIG_PCI=n, that triggers a warning in the IO >> accessors, eg: >> >> In file included from linux/arch/powerpc/include/asm/io.h:672: >> linux/arch/powerpc/include/asm/io-defs.h:23:1: warning: performing pointer >> arithmetic on a null pointer has undefined behavior >> [-Wnull-pointer-arithmetic] >> 23 | DEF_PCI_AC_RET(inb, u8, (unsigned long port), (port), pio, port) >> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> ... >> linux/arch/powerpc/include/asm/io.h:591:53: note: expanded from macro >> '__do_inb' >> 591 | #define __do_inb(port) readb((PCI_IO_ADDR)_IO_BASE + >> port); >> | ~~~~~~~~~~~~~~~~~~~~~ ^ >> >> That is because when CONFIG_PCI=n, _IO_BASE is defined as 0. >> >> Although _IO_BASE is defined as plain 0, the cast (PCI_IO_ADDR) converts >> it to void * before the addition with port happens. >> >> Instead the addition can be done first, and then the cast. The resulting >> value will be the same, but avoids the warning, and also avoids void >> pointer arithmetic which is apparently non-standard. >> >> Reported-by: Naresh Kamboju <naresh.kamb...@linaro.org> >> Closes: >> https://lore.kernel.org/all/CA+G9fYtEh8zmq8k8wE-8RZwW-Qr927RLTn+KqGnq1F=ptaa...@mail.gmail.com >> Signed-off-by: Michael Ellerman <m...@ellerman.id.au> > > Tested-by: Linux Kernel Functional Testing <l...@linaro.org>
Thanks. cheers