On 04/09/22 at 02:44am, Matthew Wilcox wrote: > On Sat, Apr 09, 2022 at 09:02:29AM +0800, Baoquan He wrote: > > I tried on x86_64 system, for the 1st step, I got this: > > > > [ ~]# wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross > > /root/bin/make.cross: No such file or directory > > ... I don't think we need to reproduce it to see the problem. > > > > sparse warnings: (new ones prefixed by >>) > > > >> arch/sh/kernel/crash_dump.c:23:36: sparse: sparse: incorrect type in argument 1 (different address spaces) @@ expected void const *addr @@ got void [noderef] __iomem * @@ > > > arch/sh/kernel/crash_dump.c:23:36: sparse: expected void const *addr > > > arch/sh/kernel/crash_dump.c:23:36: sparse: got void [noderef] __iomem * > > > > > > vim +23 arch/sh/kernel/crash_dump.c > > > > > > 13 > > > 14 ssize_t copy_oldmem_page(struct iov_iter *iter, unsigned long pfn, > > > 15 size_t csize, unsigned long offset) > > > 16 { > > > 17 void __iomem *vaddr; > > > 18 > > > 19 if (!csize) > > > 20 return 0; > > > 21 > > > 22 vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE); > > > > 23 csize = copy_to_iter(vaddr + offset, csize, iter); > > Unlike other architectures, sh4 does this by calling ioremap(). > That gives us an __iomem qualified pointer, which it then warns about > passing to copy_to_iter(). > > There are a bunch of hacky things we could do to fix it, but for such an > unmaintained arch as sh, I'm inclined to do nothing. We're more likely > to break something while fixing the warning. Someone who knows the arch > can figure out what to do properly. Checked code, this can be fixed by casting away __iomem when feeding __iomem pointer into function which doesn't expect it. While seems the lkp failed me again. Subject: [PATCH] sh: cast away __iomem to remove sparse warning This warning happened when __iomem pointer is passed into fucntion which does expect it. casting away the __iomem can fix it. Signed-off-by: Baoquan He <bhe@xxxxxxxxxx> --- arch/sh/kernel/crash_dump.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/sh/kernel/crash_dump.c b/arch/sh/kernel/crash_dump.c index 19ce6a950aac..b45bb0b8a182 100644 --- a/arch/sh/kernel/crash_dump.c +++ b/arch/sh/kernel/crash_dump.c @@ -20,7 +20,7 @@ ssize_t copy_oldmem_page(struct iov_iter *iter, unsigned long pfn, return 0; vaddr = ioremap(pfn << PAGE_SHIFT, PAGE_SIZE); - csize = copy_to_iter(vaddr + offset, csize, iter); + csize = copy_to_iter((void __force *)vaddr + offset, csize, iter); iounmap(vaddr); return csize; -- 2.34.1 Hi Philipp, I executed 'mkdir -p /root/bin', then can continue the next steps. However, the building failed with below message. I cloned linus's tree into the testing system. Then add remote https://github.com/intel-lab-lkp/linux. Forgive my stupidity on this. If I can test above code, I can merge it into patch in a new version. Otherwise, I will leave it alone as willy suggested. [root@dell-pem710-02 linux]# wget https://download.01.org/0day-ci/archive/20220408/202204082128.JKXXDGpa-lkp@xxxxxxxxx/config --2022-04-10 19:54:15-- https://download.01.org/0day-ci/archive/20220408/202204082128.JKXXDGpa-lkp@xxxxxxxxx/config Resolving download.01.org (download.01.org)... 2600:1408:20:c90::4b21, 2600:1408:20:c9b::4b21, 23.208.55.108 Connecting to download.01.org (download.01.org)|2600:1408:20:c90::4b21|:443... failed: Network is unreachable. Connecting to download.01.org (download.01.org)|2600:1408:20:c9b::4b21|:443... failed: Network is unreachable. Connecting to download.01.org (download.01.org)|23.208.55.108|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 122058 (119K) [application/octet-stream] Saving to: ‘config’ config 100%[============================================================>] 119.20K 769KB/s in 0.2s 2022-04-10 19:54:16 (769 KB/s) - ‘config’ saved [122058/122058] [root@dell-pem710-02 linux]# mv config .config [root@dell-pem710-02 linux]# COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=sh SHELL=/bin/bash arch/sh/kernel/ Compiler will be installed in /root/0day make --keep-going CONFIG_OF_ALL_DTBS=y CONFIG_DTC=y CROSS_COMPILE=/root/0day/gcc-9.3.0-nolibc/sh4-linux/bin/sh4-linux- --jobs=32 C=1 CF=-fdiagnostic-prefix -D__CHECK_ENDIAN__ O=build_dir ARCH=sh SHELL=/bin/bash arch/sh/kernel/ make[1]: Entering directory '/root/linux/build_dir' SYNC include/config/auto.conf.cmd *** *** The source tree is not clean, please run 'make ARCH=sh mrproper' *** in /root/linux *** make[2]: *** [../Makefile:574: outputmakefile] Error 1 HOSTCC scripts/basic/fixdep make[2]: Target 'syncconfig' not remade because of errors. make[1]: *** [/root/linux/Makefile:722: 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'. *** *** The source tree is not clean, please run 'make ARCH=sh mrproper' *** in /root/linux *** make[1]: *** [/root/linux/Makefile:574: outputmakefile] Error 1 SYSHDR arch/sh/include/generated/uapi/asm/unistd_32.h SYSTBL arch/sh/include/generated/asm/syscall_table.h Error: kernelrelease not valid - run 'make prepare' to update it HOSTCC scripts/dtc/dtc.o HOSTCC scripts/dtc/flattree.o HOSTCC scripts/dtc/fstree.o HOSTCC scripts/dtc/data.o HOSTCC scripts/dtc/treesource.o HOSTCC scripts/dtc/livetree.o HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/checks.o HOSTCC scripts/dtc/util.o LEX scripts/dtc/dtc-lexer.lex.c YACC scripts/dtc/dtc-parser.tab.[ch] HOSTCC scripts/dtc/libfdt/fdt.o HOSTCC scripts/dtc/libfdt/fdt_ro.o HOSTCC scripts/dtc/libfdt/fdt_sw.o HOSTCC scripts/dtc/libfdt/fdt_wip.o HOSTCC scripts/dtc/libfdt/fdt_rw.o HOSTCC scripts/dtc/libfdt/fdt_strerror.o HOSTCC scripts/dtc/libfdt/fdt_empty_tree.o HOSTCC scripts/dtc/libfdt/fdt_addresses.o HOSTCC scripts/dtc/libfdt/fdt_overlay.o HOSTCC scripts/dtc/fdtoverlay.o HOSTCC scripts/dtc/dtc-lexer.lex.o HOSTCC scripts/dtc/dtc-parser.tab.o HOSTLD scripts/dtc/fdtoverlay HOSTLD scripts/dtc/dtc make[1]: Target 'arch/sh/kernel/' not remade because of errors. make[1]: Leaving directory '/root/linux/build_dir' make: *** [Makefile:219: __sub-make] Error 2 make: Target 'arch/sh/kernel/' not remade because of errors. [root@dell-pem710-02 linux]# > _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec