From: Baoquan He <bhe@redhat.com>
To: Nathan Chancellor <nathan@kernel.org>
Cc: kernel test robot <lkp@intel.com>,
llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
Andrew Morton <akpm@linux-foundation.org>,
Linux Memory Management List <linux-mm@kvack.org>,
Niklas Schnelle <schnelle@linux.ibm.com>,
Christoph Hellwig <hch@lst.de>,
"Mike Rapoport (IBM)" <rppt@kernel.org>
Subject: Re: [akpm-mm:mm-unstable 86/125] drivers/irqchip/irq-al-fic.c:281:2: error: call to undeclared function 'iounmap'; ISO C99 and later do not support implicit function declarations
Date: Wed, 12 Jul 2023 08:29:16 +0800 [thread overview]
Message-ID: <ZK3z3FeSi9Nlbzjn@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20230711172008.GA369569@dev-arch.thelio-3990X>
On 07/11/23 at 10:20am, Nathan Chancellor wrote:
> Hi Baoquan,
>
> On Tue, Jul 11, 2023 at 08:45:20AM +0800, Baoquan He wrote:
> > Hi,
> >
> > On 07/11/23 at 05:22am, kernel test robot wrote:
> > > tree: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable
> > > head: 17712b3b36c898462c3d31d4b47bd069e87359c5
> > > commit: 7aeb1874c9d6e390a405529c7eec76d2486f65d8 [86/125] s390: mm: convert to GENERIC_IOREMAP
> > > config: s390-randconfig-r015-20230710 (https://download.01.org/0day-ci/archive/20230711/202307110516.V0qgum1Q-lkp@intel.com/config)
> > > compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
> > > reproduce: (https://download.01.org/0day-ci/archive/20230711/202307110516.V0qgum1Q-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@intel.com>
> > > | Closes: https://lore.kernel.org/oe-kbuild-all/202307110516.V0qgum1Q-lkp@intel.com/
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > In file included from drivers/irqchip/irq-al-fic.c:7:
> > > In file included from include/linux/irq.h:20:
> > > In file included from include/linux/io.h:13:
> > > In file included from arch/s390/include/asm/io.h:78:
> > > include/asm-generic/io.h:547:31: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 547 | val = __raw_readb(PCI_IOBASE + addr);
> >
> > Thanks for reporting. I am not gonna to fix it because Nathan told me
> > there had been a series specifically taking care of the PCI_IOBASE
> > warnings from Niklas. Quote Nathan's words here for reference:
> >
> >
> > https://lore.kernel.org/all/20230612160237.GA199007@dev-arch.thelio-3990X/T/#u
> > ===
> > I believe that this series [1] by Niklas Schnelle should take care of
> > the PCI_IOBASE warnings (which are not Hexagon specific), so there is no
> > need to worry about them when they show up in build reports.
> >
> > [1]: https://lore.kernel.org/20230522105049.1467313-1-schnelle@linux.ibm.com/
> >
> > Cheers,
> > Nathan
> > ===
> >
> > > | ~~~~~~~~~~ ^
> > > include/asm-generic/io.h:560:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 560 | val = __le16_to_cpu((__le16 __force)__raw_readw(PCI_IOBASE + addr));
> > > | ~~~~~~~~~~ ^
> > > include/uapi/linux/byteorder/big_endian.h:37:59: note: expanded from macro '__le16_to_cpu'
> > > 37 | #define __le16_to_cpu(x) __swab16((__force __u16)(__le16)(x))
> > > | ^
> > > include/uapi/linux/swab.h:102:54: note: expanded from macro '__swab16'
> > > 102 | #define __swab16(x) (__u16)__builtin_bswap16((__u16)(x))
> > > | ^
> > > In file included from drivers/irqchip/irq-al-fic.c:7:
> > > In file included from include/linux/irq.h:20:
> > > In file included from include/linux/io.h:13:
> > > In file included from arch/s390/include/asm/io.h:78:
> > > include/asm-generic/io.h:573:61: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 573 | val = __le32_to_cpu((__le32 __force)__raw_readl(PCI_IOBASE + addr));
> > > | ~~~~~~~~~~ ^
> > > include/uapi/linux/byteorder/big_endian.h:35:59: note: expanded from macro '__le32_to_cpu'
> > > 35 | #define __le32_to_cpu(x) __swab32((__force __u32)(__le32)(x))
> > > | ^
> > > include/uapi/linux/swab.h:115:54: note: expanded from macro '__swab32'
> > > 115 | #define __swab32(x) (__u32)__builtin_bswap32((__u32)(x))
> > > | ^
> > > In file included from drivers/irqchip/irq-al-fic.c:7:
> > > In file included from include/linux/irq.h:20:
> > > In file included from include/linux/io.h:13:
> > > In file included from arch/s390/include/asm/io.h:78:
> > > include/asm-generic/io.h:584:33: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 584 | __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]
> > > 594 | __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]
> > > 604 | __raw_writel((u32 __force)cpu_to_le32(value), PCI_IOBASE + addr);
> > > | ~~~~~~~~~~ ^
> > > include/asm-generic/io.h:692:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 692 | readsb(PCI_IOBASE + addr, buffer, count);
> > > | ~~~~~~~~~~ ^
> > > include/asm-generic/io.h:700:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 700 | readsw(PCI_IOBASE + addr, buffer, count);
> > > | ~~~~~~~~~~ ^
> > > include/asm-generic/io.h:708:20: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 708 | readsl(PCI_IOBASE + addr, buffer, count);
> > > | ~~~~~~~~~~ ^
> > > include/asm-generic/io.h:717:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 717 | writesb(PCI_IOBASE + addr, buffer, count);
> > > | ~~~~~~~~~~ ^
> > > include/asm-generic/io.h:726:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 726 | writesw(PCI_IOBASE + addr, buffer, count);
> > > | ~~~~~~~~~~ ^
> > > include/asm-generic/io.h:735:21: warning: performing pointer arithmetic on a null pointer has undefined behavior [-Wnull-pointer-arithmetic]
> > > 735 | writesl(PCI_IOBASE + addr, buffer, count);
> > > | ~~~~~~~~~~ ^
> > > >> drivers/irqchip/irq-al-fic.c:281:2: error: call to undeclared function 'iounmap'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> > > 281 | iounmap(base);
> > > | ^
> > > arch/s390/include/asm/io.h:29:17: note: expanded from macro 'iounmap'
> > > 29 | #define iounmap iounmap
> > > | ^
> > > drivers/irqchip/irq-al-fic.c:281:2: note: did you mean 'vunmap'?
> > > arch/s390/include/asm/io.h:29:17: note: expanded from macro 'iounmap'
> > > 29 | #define iounmap iounmap
> > > | ^
> > > include/linux/vmalloc.h:167:13: note: 'vunmap' declared here
> > > 167 | extern void vunmap(const void *addr);
> > > | ^
> > > 12 warnings and 1 error generated.
>
> It seems like this was the error that the robot thinks that your patch
> introduced, which seems like it might be legitimate? Is an
> asm-generic/io.h include missing somewhere or is there some prexisting
> issue that is exposed with your patch?
These errors have been there for long time.
In the current linus's tree, as long as CONFIG_PCI is disabled, these
errors can be seen. I don't know why they are reported on my patches
utill now.
You can see in arch/s390/pci/pci.c, ioremap_xx() and iounmap are all
defined there. Only enabling CONFIG_PCI can build and link in pci.o.
Otherwise, all those drivers calling ioremap(), devm_ioremap(), their
variants or wrappers will fail building and trigger errors like this
report. It's not related to my patch. LKP test robot may need provide
a clean base to test posted patches to avoid confusion.
arch/s390/pci/pci.c:
==================
obj-$(CONFIG_PCI) += pci.o pci_irq.o pci_dma.o pci_clp.o pci_sysfs.o \
pci_event.o pci_debug.o pci_insn.o pci_mmio.o \
pci_bus.o pci_kvm_hook.o
obj-$(CONFIG_PCI_IOV) += pci_iov.o
prev parent reply other threads:[~2023-07-12 0:29 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-10 21:22 [akpm-mm:mm-unstable 86/125] drivers/irqchip/irq-al-fic.c:281:2: error: call to undeclared function 'iounmap'; ISO C99 and later do not support implicit function declarations kernel test robot
2023-07-11 0:45 ` Baoquan He
2023-07-11 17:20 ` Nathan Chancellor
2023-07-12 0:29 ` Baoquan He [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ZK3z3FeSi9Nlbzjn@MiWiFi-R3L-srv \
--to=bhe@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=hch@lst.de \
--cc=linux-mm@kvack.org \
--cc=lkp@intel.com \
--cc=llvm@lists.linux.dev \
--cc=nathan@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=rppt@kernel.org \
--cc=schnelle@linux.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.