• Baoquan He's avatar
    of: make OF_EARLY_FLATTREE depend on HAS_IOMEM · 7e08baf6
    Baoquan He authored
    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: default avatarkernel test robot <lkp@intel.com>
    Closes: https://lore.kernel.org/oe-kbuild-all/202306211329.ticOJCSv-lkp@intel.com/Signed-off-by: default avatarBaoquan He <bhe@redhat.com>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: Frank Rowand <frowand.list@gmail.com>
    Cc: devicetree@vger.kernel.org
    Link: https://lore.kernel.org/r/20230707135852.24292-9-bhe@redhat.comSigned-off-by: default avatarRob Herring <robh@kernel.org>
    7e08baf6
Kconfig 2.72 KB