Re: [PATCH v2 08/11] parisc: mm: Convert to GENERIC_IOREMAP

Helge Deller
2022-08-21T14:19:51Z

On 8/21/22 12:26, Baoquan He wrote:
> Hi,
>
> On 08/20/22 at 12:03pm, kernel test robot wrote:
>> Hi Baoquan,
>>
>> I love your patch! Yet something to improve:
>>
>> [auto build test ERROR on akpm-mm/mm-everything]
>>
>> url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/mm-ioremap-Convert-architectures-to-take-GENERIC_IOREMAP-way/20220820-083435
>> base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
>> config: parisc-randconfig-r005-20220820 (https://download.01.org/0day-ci/archive/20220820/202208201135.YyN9CXsu-lkp@intel.com/config)
>> compiler: hppa-linux-gcc (GCC) 12.1.0
>> 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
>> # https://github.com/intel-lab-lkp/linux/commit/570f2a3347cc83c9ea71d3dbbebfad8ea085ecc6
>> git remote add linux-review https://github.com/intel-lab-lkp/linux
>> git fetch --no-tags linux-review Baoquan-He/mm-ioremap-Convert-architectures-to-take-GENERIC_IOREMAP-way/20220820-083435
>> git checkout 570f2a3347cc83c9ea71d3dbbebfad8ea085ecc6
>> # save the config file
>> mkdir build_dir && cp config build_dir/.config
>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=parisc prepare
>
> Thanks for reporting. While it failed with "hppa-linux-gcc: unknown compiler" as below showing. Could you help check and tell what's wrong?

You need to install the gcc-hppa64-linux-gnu and gcc-hppa-linux-gnu DEBs/RPMs.
As COMPILER you probably only need "gcc" (or leave COMPILER empty/unset).

Then run "make ARCH=parisc64" (64bit) or "make ARCH=parisc" (32bit).
The Makefile should automatically detect your compiler..

Helge

>
> [root@ ~]# ls
> 0day anaconda-ks.cfg bin EFI_BOOT_ENTRY.TXT linux NETBOOT_METHOD.TXT original-ks.cfg RECIPE.TXT
> [root@ ~]# ls 0day/gcc-12.1.0-nolibc/
> hppa-linux x86_64-gcc-12.1.0-nolibc_hppa-linux.tar.xz
> [root@ ~]# ls bin/make.cross
> bin/make.cross
> [root@ ~]# pwd
> /root
> [root@ ~]# cd linux/
> [root@ linux]# pwd
> /root/linux
>
> [root@ linux]# COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=/root/linux/build_dir ARCH=parisc prepare
> Compiler will be installed in /root/0day
> PATH=/root/0day/gcc-12.1.0-nolibc/hppa-linux/bin:/root/.local/bin:/root/bin:/usr/lib64/ccache:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
> make --keep-going --jobs=160 W=1 O=/root/linux/build_dir ARCH=parisc prepare
> make[1]: Entering directory '/root/linux/build_dir'
> /root/0day/gcc-12.1.0-nolibc/hppa-linux/bin/hppa-linux-gcc: /root/0day/gcc-12.1.0-nolibc/hppa-linux/bin/hppa-linux-gcc: cannot execute binary file
> SYNC include/config/auto.conf.cmd
> /root/0day/gcc-12.1.0-nolibc/hppa-linux/bin/hppa-linux-gcc: /root/0day/gcc-12.1.0-nolibc/hppa-linux/bin/hppa-linux-gcc: cannot execute binary file
> GEN Makefile
> hppa-linux-gcc: unknown compiler
> scripts/Kconfig.include:44: Sorry, this compiler is not supported.
> make[3]: *** [../scripts/kconfig/Makefile:77: syncconfig] Error 1
> make[2]: *** [../Makefile:632: syncconfig] Error 2
> make[1]: *** [/root/linux/Makefile:734: include/config/auto.conf.cmd] Error 2
> make[1]: Failed to remake makefile 'include/config/auto.conf.cmd'.
> make[1]: Failed to remake makefile 'include/config/auto.conf'.
> GEN Makefile
> Error: kernelrelease not valid - run 'make prepare' to update it
> make[1]: Target 'prepare' not remade because of errors.
> make[1]: Leaving directory '/root/linux/build_dir'
> make: *** [Makefile:222: __sub-make] Error 2
> make: Target 'prepare' not remade because of errors.
>
>
>>
>> If you fix the issue, kindly add following tag where applicable
>> Reported-by: kernel test robot <lkp@intel.com>
>>
>> All error/warnings (new ones prefixed by >>):
>>
>> In file included from arch/parisc/include/asm/io.h:315,
>> from include/linux/io.h:13,
>> from include/linux/irq.h:20,
>> from arch/parisc/include/asm/hardirq.h:13,
>> from include/linux/hardirq.h:11,
>> from arch/parisc/kernel/asm-offsets.c:21:
>>>> include/asm-generic/iomap.h:97: warning: "ioremap_wc" redefined
>> 97 | #define ioremap_wc ioremap
>> |
>> arch/parisc/include/asm/io.h:135: note: this is the location of the previous definition
>> 135 | #define ioremap_wc(addr, size) \
>> |
>> include/linux/io.h: In function 'pci_remap_cfgspace':
>>>> include/linux/io.h:89:44: error: implicit declaration of function 'ioremap'; did you mean 'ioremap_np'? [-Werror=implicit-function-declaration]
>> 89 | return ioremap_np(offset, size) ?: ioremap(offset, size);
>> | ^~~~~~~
>> | ioremap_np
>>>> include/linux/io.h:89:42: warning: pointer/integer type mismatch in conditional expression
>> 89 | return ioremap_np(offset, size) ?: ioremap(offset, size);
>> | ^
>> cc1: some warnings being treated as errors
>> make[2]: *** [scripts/Makefile.build:117: arch/parisc/kernel/asm-offsets.s] Error 1
>> make[2]: Target '__build' not remade because of errors.
>> make[1]: *** [Makefile:1207: prepare0] Error 2
>> make[1]: Target 'prepare' not remade because of errors.
>> make: *** [Makefile:222: __sub-make] Error 2
>> make: Target 'prepare' not remade because of errors.
>>
>>
>> vim +89 include/linux/io.h
>>
>> 7d3dcf26a6559f Christoph Hellwig 2015-08-10 72
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 73 #ifdef CONFIG_PCI
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 74 /*
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 75 * The PCI specifications (Rev 3.0, 3.2.5 "Transaction Ordering and
>> b10eb2d50911f9 Hector Martin 2021-03-25 76 * Posting") mandate non-posted configuration transactions. This default
>> b10eb2d50911f9 Hector Martin 2021-03-25 77 * implementation attempts to use the ioremap_np() API to provide this
>> b10eb2d50911f9 Hector Martin 2021-03-25 78 * on arches that support it, and falls back to ioremap() on those that
>> b10eb2d50911f9 Hector Martin 2021-03-25 79 * don't. Overriding this function is deprecated; arches that properly
>> b10eb2d50911f9 Hector Martin 2021-03-25 80 * support non-posted accesses should implement ioremap_np() instead, which
>> b10eb2d50911f9 Hector Martin 2021-03-25 81 * this default implementation can then use to return mappings compliant with
>> b10eb2d50911f9 Hector Martin 2021-03-25 82 * the PCI specification.
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 83 */
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 84 #ifndef pci_remap_cfgspace
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 85 #define pci_remap_cfgspace pci_remap_cfgspace
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 86 static inline void __iomem *pci_remap_cfgspace(phys_addr_t offset,
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 87 size_t size)
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 88 {
>> b10eb2d50911f9 Hector Martin 2021-03-25 @89 return ioremap_np(offset, size) ?: ioremap(offset, size);
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 90 }
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 91 #endif
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 92 #endif
>> cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 93
>>
>> --
>> 0-DAY CI Kernel Test Service
>> https://01.org/lkp
>>
>