On 12/1/20 12:13 PM, Rob Herring wrote: > On Tue, Dec 1, 2020 at 5:29 AM Catalin Marinas <catalin.marinas@xxxxxxx> wrote: >> >> On Tue, Dec 01, 2020 at 05:32:51PM +0800, kernel test robot wrote: >>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master >>> head: c6b11acc5f85b6e11d128fad8e0b7b223aa7e33f >>> commit: 07d13a1d6120d453c3c1f020578693d072deded5 [6272/9613] of: unittest: Add test for of_dma_get_max_cpu_address() >>> config: s390-randconfig-r034-20201201 (attached as .config) >>> compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project ac40a2d8f16b8a8c68fc811d67f647740e965cb8) >>> reproduce (this is a W=1 build): >>> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross >>> chmod +x ~/bin/make.cross >>> # install s390 cross compiling tool for clang build >>> # apt-get install binutils-s390x-linux-gnu >>> # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=07d13a1d6120d453c3c1f020578693d072deded5 >>> git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git >>> git fetch --no-tags linux-next master >>> git checkout 07d13a1d6120d453c3c1f020578693d072deded5 >>> # save the attached .config to linux build tree >>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=s390 >>> >>> If you fix the issue, kindly add following tag as appropriate >>> Reported-by: kernel test robot <lkp@xxxxxxxxx> >>> >>> All errors (new ones prefixed by >>): >>> >>> s390x-linux-gnu-ld: kernel/dma/coherent.o: in function `dma_declare_coherent_memory': >>> coherent.c:(.text+0xf8): undefined reference to `memunmap' >>> s390x-linux-gnu-ld: kernel/dma/coherent.o: in function `dma_init_coherent_memory': >>> coherent.c:(.text+0x174): undefined reference to `memremap' >>> s390x-linux-gnu-ld: coherent.c:(.text+0x344): undefined reference to `memunmap' >>> s390x-linux-gnu-ld: drivers/of/unittest.o: in function `of_unittest': >>>>> unittest.c:(.init.text+0x120): undefined reference to `of_dma_get_max_cpu_address' >> >> Thanks for the report. I think it needs the diff below. If Rob/Nicolas >> are ok with it, I'll add it to the arm64 tree (with some commit text): >> >> diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c >> index 98cc0163301b..799125ef66fc 100644 >> --- a/drivers/of/unittest.c >> +++ b/drivers/of/unittest.c >> @@ -871,6 +871,7 @@ static void __init of_unittest_changeset(void) >> >> static void __init of_unittest_dma_get_max_cpu_address(void) >> { >> +#ifdef CONFIG_OF_ADDRESS > > if (!IS_ENABLED(CONFIG_OF_ADDRESS)) > return; > > This once again makes me want to kill off HAS_IOMEM. Or at least > always have a dummy ioremap() and friends for !HAS_IOMEM. That would eliminate dozens of build errors on S390 when # CONFIG_HAS_IOMEM is not set # CONFIG_OF_ADDRESS is not set >> struct device_node *np; >> phys_addr_t cpu_addr; >> >> @@ -884,6 +885,7 @@ static void __init of_unittest_dma_get_max_cpu_address(void) >> unittest(cpu_addr == 0x4fffffff, >> "of_dma_get_max_cpu_address: wrong CPU addr %pad (expecting %x)\n", >> &cpu_addr, 0x4fffffff); >> +#endif >> } >> >> static void __init of_unittest_dma_ranges_one(const char *path, >> >> -- >> Catalin > -- ~Randy