Re: [PATCH 8/8] of: make OF_EARLY_FLATTREE depend on HAS_IOMEM

From: Rob Herring
Date: Mon Jul 10 2023 - 10:54:19 EST



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!