On Fri, 07 Jul 2023 21:58:52 +0800, Baoquan He wrote: > On s390 systems (aka mainframes), it has classic channel devices for > networking and permanent storage that are currently even more common > than PCI devices. Hence it could have a fully functional s390 kernel > with CONFIG_PCI=n, then the relevant iomem mapping functions > [including ioremap(), devm_ioremap(), etc.] are not available. > > In LKP error report at below on s390: > ------ > ld: kernel/dma/coherent.o: in function `dma_init_coherent_memory': > coherent.c:(.text+0x102): undefined reference to `memremap' > ld: coherent.c:(.text+0x226): undefined reference to `memunmap' > ld: kernel/dma/coherent.o: in function `dma_declare_coherent_memory': > coherent.c:(.text+0x8b8): undefined reference to `memunmap' > ld: kernel/dma/coherent.o: in function `dma_release_coherent_memory': > coherent.c:(.text+0x9aa): undefined reference to `memunmap' > ------ > > In the config file, several Kconfig options are: > ------ > '# CONFIG_PCI is not set' > CONFIG_OF_EARLY_FLATTREE=y > CONFIG_DMA_DECLARE_COHERENT=y > ------ > > So, enabling OF_EARLY_FLATTREE will select DMA_DECLARE_COHERENT > and cause above building errors even though they are not needed > because CONFIG_PCI is disabled. > > Here let OF_EARLY_FLATTREE depend on HAS_IOMEM so that it won't > be built to cause compiling error if PCI is unset. > > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Closes: https://lore.kernel.org/oe-kbuild-all/202306211329.ticOJCSv-lkp@xxxxxxxxx/ > Signed-off-by: Baoquan He <bhe@xxxxxxxxxx> > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Cc: Frank Rowand <frowand.list@xxxxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx > --- > drivers/of/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > Applied, thanks!