* [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP
[not found] <20230620131356.25440-1-bhe@redhat.com>
@ 2023-06-20 13:13 ` Baoquan He
2023-06-21 2:15 ` kernel test robot
0 siblings, 1 reply; 5+ messages in thread
From: Baoquan He @ 2023-06-20 13:13 UTC (permalink / raw)
To: linux-kernel
Cc: linux-arch, linux-mm, arnd, hch, christophe.leroy, rppt, willy,
agordeev, wangkefeng.wang, schnelle, David.Laight, shorne, deller,
nathan, glaubitz, Baoquan He, Brian Cain, linux-hexagon
By taking GENERIC_IOREMAP method, the generic ioremap_prot() and
iounmap() are visible and available to arch. This change will
simplify implementation by removing duplicated codes with generic
ioremap_prot() and iounmap(), and has the equivalent functioality.
For hexagon, the current ioremap() and iounmap() are the same as
generic version. After taking GENERIC_IOREMAP way, the old ioremap()
and iounmap() can be completely removed.
Signed-off-by: Baoquan He <bhe@redhat.com>
Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Brian Cain <bcain@quicinc.com>
Cc: linux-hexagon@vger.kernel.org
---
v6->v7:
- Fix building error reported by lkp test robot. Here I only fixed the
redefinition of iounmap(), ignored the PCI_IOBASE warnings since
Nathan kindly reminded me the warning is a generic issue, and Niklas
is working on that within below patchset.
https://lore.kernel.org/all/20230612160237.GA199007@dev-arch.thelio-3990X/T/#u
arch/hexagon/Kconfig | 1 +
arch/hexagon/include/asm/io.h | 11 +++++----
arch/hexagon/mm/ioremap.c | 44 -----------------------------------
3 files changed, 8 insertions(+), 48 deletions(-)
delete mode 100644 arch/hexagon/mm/ioremap.c
diff --git a/arch/hexagon/Kconfig b/arch/hexagon/Kconfig
index 54eadf265178..17afffde1a7f 100644
--- a/arch/hexagon/Kconfig
+++ b/arch/hexagon/Kconfig
@@ -25,6 +25,7 @@ config HEXAGON
select NEED_SG_DMA_LENGTH
select NO_IOPORT_MAP
select GENERIC_IOMAP
+ select GENERIC_IOREMAP
select GENERIC_SMP_IDLE_THREAD
select STACKTRACE_SUPPORT
select GENERIC_CLOCKEVENTS_BROADCAST
diff --git a/arch/hexagon/include/asm/io.h b/arch/hexagon/include/asm/io.h
index 46a099de85b7..e2b308e32a37 100644
--- a/arch/hexagon/include/asm/io.h
+++ b/arch/hexagon/include/asm/io.h
@@ -27,8 +27,6 @@
extern int remap_area_pages(unsigned long start, unsigned long phys_addr,
unsigned long end, unsigned long flags);
-extern void iounmap(const volatile void __iomem *addr);
-
/* Defined in lib/io.c, needed for smc91x driver. */
extern void __raw_readsw(const void __iomem *addr, void *data, int wordlen);
extern void __raw_writesw(void __iomem *addr, const void *data, int wordlen);
@@ -170,8 +168,13 @@ static inline void writel(u32 data, volatile void __iomem *addr)
#define writew_relaxed __raw_writew
#define writel_relaxed __raw_writel
-void __iomem *ioremap(unsigned long phys_addr, unsigned long size);
-#define ioremap_uc(X, Y) ioremap((X), (Y))
+/*
+ * I/O memory mapping functions.
+ */
+#define _PAGE_IOREMAP (_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \
+ (__HEXAGON_C_DEV << 6))
+
+#define ioremap_uc(addr, size) ioremap((addr), (size))
#define __raw_writel writel
diff --git a/arch/hexagon/mm/ioremap.c b/arch/hexagon/mm/ioremap.c
deleted file mode 100644
index 255c5b1ee1a7..000000000000
--- a/arch/hexagon/mm/ioremap.c
+++ /dev/null
@@ -1,44 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * I/O remap functions for Hexagon
- *
- * Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
- */
-
-#include <linux/io.h>
-#include <linux/vmalloc.h>
-#include <linux/mm.h>
-
-void __iomem *ioremap(unsigned long phys_addr, unsigned long size)
-{
- unsigned long last_addr, addr;
- unsigned long offset = phys_addr & ~PAGE_MASK;
- struct vm_struct *area;
-
- pgprot_t prot = __pgprot(_PAGE_PRESENT|_PAGE_READ|_PAGE_WRITE
- |(__HEXAGON_C_DEV << 6));
-
- last_addr = phys_addr + size - 1;
-
- /* Wrapping not allowed */
- if (!size || (last_addr < phys_addr))
- return NULL;
-
- /* Rounds up to next page size, including whole-page offset */
- size = PAGE_ALIGN(offset + size);
-
- area = get_vm_area(size, VM_IOREMAP);
- addr = (unsigned long)area->addr;
-
- if (ioremap_page_range(addr, addr+size, phys_addr, prot)) {
- vunmap((void *)addr);
- return NULL;
- }
-
- return (void __iomem *) (offset + addr);
-}
-
-void iounmap(const volatile void __iomem *addr)
-{
- vunmap((void *) ((unsigned long) addr & PAGE_MASK));
-}
--
2.34.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP
2023-06-20 13:13 ` [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP Baoquan He
@ 2023-06-21 2:15 ` kernel test robot
2023-06-21 8:50 ` Baoquan He
0 siblings, 1 reply; 5+ messages in thread
From: kernel test robot @ 2023-06-21 2:15 UTC (permalink / raw)
To: Baoquan He, linux-kernel
Cc: llvm, oe-kbuild-all, linux-arch, linux-mm, arnd, hch,
christophe.leroy, rppt, willy, agordeev, wangkefeng.wang,
schnelle, David.Laight, shorne, deller, nathan, glaubitz,
Baoquan He, Brian Cain, linux-hexagon
Hi Baoquan,
kernel test robot noticed the following build errors:
[auto build test ERROR on akpm-mm/mm-everything]
url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135
base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
patch link: https://lore.kernel.org/r/20230620131356.25440-3-bhe%40redhat.com
patch subject: [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP
config: hexagon-randconfig-r041-20230620 (https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306211030.DioMEPhl-lkp@intel.com/
All errors (new ones prefixed by >>):
>> arch/hexagon/kernel/hexagon_ksyms.o: error: local symbol ioremap was exported
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP
2023-06-21 2:15 ` kernel test robot
@ 2023-06-21 8:50 ` Baoquan He
2023-06-21 19:08 ` Nathan Chancellor
0 siblings, 1 reply; 5+ messages in thread
From: Baoquan He @ 2023-06-21 8:50 UTC (permalink / raw)
To: kernel test robot
Cc: linux-kernel, llvm, oe-kbuild-all, linux-arch, linux-mm, arnd,
hch, christophe.leroy, rppt, willy, agordeev, wangkefeng.wang,
schnelle, David.Laight, shorne, deller, nathan, glaubitz,
Brian Cain, linux-hexagon
Hi,
On 06/21/23 at 10:15am, kernel test robot wrote:
> Hi Baoquan,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on akpm-mm/mm-everything]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135
> base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> patch link: https://lore.kernel.org/r/20230620131356.25440-3-bhe%40redhat.com
> patch subject: [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP
> config: hexagon-randconfig-r041-20230620 (https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/config)
> compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
> reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/reproduce)
>
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <lkp@intel.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202306211030.DioMEPhl-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> >> arch/hexagon/kernel/hexagon_ksyms.o: error: local symbol ioremap was exported
I followed steps in your reproduce link, didn't reproduce the error as
above line reported. I can still see those PCI_IOMAP warning, however
they will disappear when rebuilding. The clone3 warning can always ben
seen. I didn't see the symbol ioremap error. Could you double check if
anything missed in steps?
[root@dell-pem620-01 linux]# COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash
Compiler will be installed in /root/0day
make --keep-going LLVM=1 CROSS_COMPILE=hexagon-linux- LLVM_IAS=1 --jobs=48 W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash
make[1]: Entering directory '/root/linux/build_dir'
GEN Makefile
ld.lld: /lib64/libtinfo.so.6: no version information available (required by ld.lld)
tools/testing/selftests/arm64/tags/.gitignore: warning: ignored by one of the .gitignore files
tools/testing/selftests/arm64/tags/Makefile: warning: ignored by one of the .gitignore files
tools/testing/selftests/arm64/tags/run_tags_test.sh: warning: ignored by one of the .gitignore files
tools/testing/selftests/arm64/tags/tags_test.c: warning: ignored by one of the .gitignore files
tools/testing/selftests/kvm/.gitignore: warning: ignored by one of the .gitignore files
tools/testing/selftests/kvm/Makefile: warning: ignored by one of the .gitignore files
tools/testing/selftests/kvm/config: warning: ignored by one of the .gitignore files
tools/testing/selftests/kvm/settings: warning: ignored by one of the .gitignore files
CALL ../scripts/checksyscalls.sh
clang: /lib64/libtinfo.so.6: no version information available (required by clang)
<stdin>:1519:2: warning: syscall clone3 not implemented [-W#warnings]
1519 | #warning syscall clone3 not implemented
| ^
1 warning generated.
make[1]: Leaving directory '/root/linux/build_dir'
[root@dell-pem620-01 linux]#
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP
2023-06-21 8:50 ` Baoquan He
@ 2023-06-21 19:08 ` Nathan Chancellor
2023-06-25 1:15 ` Baoquan He
0 siblings, 1 reply; 5+ messages in thread
From: Nathan Chancellor @ 2023-06-21 19:08 UTC (permalink / raw)
To: Baoquan He
Cc: kernel test robot, linux-kernel, llvm, oe-kbuild-all, linux-arch,
linux-mm, arnd, hch, christophe.leroy, rppt, willy, agordeev,
wangkefeng.wang, schnelle, David.Laight, shorne, deller, glaubitz,
Brian Cain, linux-hexagon
On Wed, Jun 21, 2023 at 04:50:53PM +0800, Baoquan He wrote:
> Hi,
>
> On 06/21/23 at 10:15am, kernel test robot wrote:
> > Hi Baoquan,
> >
> > kernel test robot noticed the following build errors:
> >
> > [auto build test ERROR on akpm-mm/mm-everything]
> >
> > url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> > patch link: https://lore.kernel.org/r/20230620131356.25440-3-bhe%40redhat.com
> > patch subject: [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP
> > config: hexagon-randconfig-r041-20230620 (https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/config)
> > compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
> > reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/reproduce)
> >
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <lkp@intel.com>
> > | Closes: https://lore.kernel.org/oe-kbuild-all/202306211030.DioMEPhl-lkp@intel.com/
> >
> > All errors (new ones prefixed by >>):
> >
> > >> arch/hexagon/kernel/hexagon_ksyms.o: error: local symbol ioremap was exported
>
> I followed steps in your reproduce link, didn't reproduce the error as
> above line reported. I can still see those PCI_IOMAP warning, however
> they will disappear when rebuilding. The clone3 warning can always ben
> seen. I didn't see the symbol ioremap error. Could you double check if
> anything missed in steps?
>
> [root@dell-pem620-01 linux]# COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash
> Compiler will be installed in /root/0day
> make --keep-going LLVM=1 CROSS_COMPILE=hexagon-linux- LLVM_IAS=1 --jobs=48 W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash
> make[1]: Entering directory '/root/linux/build_dir'
> GEN Makefile
> ld.lld: /lib64/libtinfo.so.6: no version information available (required by ld.lld)
Hmmm, seems like a dynamic linking issue, likely because either libtinfo
is not available or the version on your system is older or newer than
the one that the compiler was built with.
Intel folks, you can opt out of this particular library dependency with
'-DLLVM_ENABLE_TERMINFO=OFF' to cmake, which will make it easier for
others to use it; the compiler can still output color on most terminals
even without libtinfo.
> tools/testing/selftests/arm64/tags/.gitignore: warning: ignored by one of the .gitignore files
> tools/testing/selftests/arm64/tags/Makefile: warning: ignored by one of the .gitignore files
> tools/testing/selftests/arm64/tags/run_tags_test.sh: warning: ignored by one of the .gitignore files
> tools/testing/selftests/arm64/tags/tags_test.c: warning: ignored by one of the .gitignore files
> tools/testing/selftests/kvm/.gitignore: warning: ignored by one of the .gitignore files
> tools/testing/selftests/kvm/Makefile: warning: ignored by one of the .gitignore files
> tools/testing/selftests/kvm/config: warning: ignored by one of the .gitignore files
> tools/testing/selftests/kvm/settings: warning: ignored by one of the .gitignore files
> CALL ../scripts/checksyscalls.sh
> clang: /lib64/libtinfo.so.6: no version information available (required by clang)
> <stdin>:1519:2: warning: syscall clone3 not implemented [-W#warnings]
> 1519 | #warning syscall clone3 not implemented
> | ^
> 1 warning generated.
> make[1]: Leaving directory '/root/linux/build_dir'
> [root@dell-pem620-01 linux]#
>
>
I am able to reproduce this with the kernel.org LLVM builds that I do,
which should not have that library dependency:
https://mirrors.edge.kernel.org/pub/tools/llvm/
$ curl -LSso .config https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/config
$ make -skj"$(nproc)" ARCH=hexagon LLVM=$(realpath llvm-16.0.6-x86_64/bin)/ olddefconfig all
...
make[5]: *** No rule to make target 'arch/hexagon/mm/ioremap.o', needed by 'arch/hexagon/mm/built-in.a'.
...
arch/hexagon/kernel/hexagon_ksyms.o: error: local symbol ioremap was exported
...
The first issue is resolved with:
diff --git a/arch/hexagon/mm/Makefile b/arch/hexagon/mm/Makefile
index 49911a906fd0..ba4b04d962d6 100644
--- a/arch/hexagon/mm/Makefile
+++ b/arch/hexagon/mm/Makefile
@@ -3,5 +3,5 @@
# Makefile for Hexagon memory management subsystem
#
-obj-y := init.o ioremap.o uaccess.o vm_fault.o cache.o
+obj-y := init.o uaccess.o vm_fault.o cache.o
obj-y += copy_to_user.o copy_from_user.o vm_tlb.o
For the second issue, it seems that ioremap is exported in
arch/hexagon/kernel/hexagon_ksyms.c but ioremap() is a static inline
function with CONFIG_GENERIC_IOREMAP. I think we can just remove the
ioremap and iounmap exports now, as ioremap() calls ioremap_prot(),
which is exported, and iounmap() is exported in mm/ioremap.c.
diff --git a/arch/hexagon/kernel/hexagon_ksyms.c b/arch/hexagon/kernel/hexagon_ksyms.c
index ec56ce2d92a2..36a80e31d187 100644
--- a/arch/hexagon/kernel/hexagon_ksyms.c
+++ b/arch/hexagon/kernel/hexagon_ksyms.c
@@ -14,12 +14,10 @@
EXPORT_SYMBOL(__clear_user_hexagon);
EXPORT_SYMBOL(raw_copy_from_user);
EXPORT_SYMBOL(raw_copy_to_user);
-EXPORT_SYMBOL(iounmap);
EXPORT_SYMBOL(__vmgetie);
EXPORT_SYMBOL(__vmsetie);
EXPORT_SYMBOL(__vmyield);
EXPORT_SYMBOL(empty_zero_page);
-EXPORT_SYMBOL(ioremap);
EXPORT_SYMBOL(memcpy);
EXPORT_SYMBOL(memset);
With those two diffs, the randconfig the robot provides builds and links
without any errors.
Cheers,
Nathan
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP
2023-06-21 19:08 ` Nathan Chancellor
@ 2023-06-25 1:15 ` Baoquan He
0 siblings, 0 replies; 5+ messages in thread
From: Baoquan He @ 2023-06-25 1:15 UTC (permalink / raw)
To: Nathan Chancellor
Cc: kernel test robot, linux-kernel, llvm, oe-kbuild-all, linux-arch,
linux-mm, arnd, hch, christophe.leroy, rppt, willy, agordeev,
wangkefeng.wang, schnelle, David.Laight, shorne, deller, glaubitz,
Brian Cain, linux-hexagon
On 06/21/23 at 07:08pm, Nathan Chancellor wrote:
> On Wed, Jun 21, 2023 at 04:50:53PM +0800, Baoquan He wrote:
> > Hi,
> >
> > On 06/21/23 at 10:15am, kernel test robot wrote:
> > > Hi Baoquan,
> > >
> > > kernel test robot noticed the following build errors:
> > >
> > > [auto build test ERROR on akpm-mm/mm-everything]
> > >
> > > url: https://github.com/intel-lab-lkp/linux/commits/Baoquan-He/asm-generic-iomap-h-remove-ARCH_HAS_IOREMAP_xx-macros/20230620-212135
> > > base: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-everything
> > > patch link: https://lore.kernel.org/r/20230620131356.25440-3-bhe%40redhat.com
> > > patch subject: [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP
> > > config: hexagon-randconfig-r041-20230620 (https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/config)
> > > compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
> > > reproduce: (https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/reproduce)
> > >
> > > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > > the same patch/commit), kindly add following tags
> > > | Reported-by: kernel test robot <lkp@intel.com>
> > > | Closes: https://lore.kernel.org/oe-kbuild-all/202306211030.DioMEPhl-lkp@intel.com/
> > >
> > > All errors (new ones prefixed by >>):
> > >
> > > >> arch/hexagon/kernel/hexagon_ksyms.o: error: local symbol ioremap was exported
> >
> > I followed steps in your reproduce link, didn't reproduce the error as
> > above line reported. I can still see those PCI_IOMAP warning, however
> > they will disappear when rebuilding. The clone3 warning can always ben
> > seen. I didn't see the symbol ioremap error. Could you double check if
> > anything missed in steps?
> >
> > [root@dell-pem620-01 linux]# COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang ~/bin/make.cross W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash
> > Compiler will be installed in /root/0day
> > make --keep-going LLVM=1 CROSS_COMPILE=hexagon-linux- LLVM_IAS=1 --jobs=48 W=1 O=build_dir ARCH=hexagon SHELL=/bin/bash
> > make[1]: Entering directory '/root/linux/build_dir'
> > GEN Makefile
> > ld.lld: /lib64/libtinfo.so.6: no version information available (required by ld.lld)
>
> Hmmm, seems like a dynamic linking issue, likely because either libtinfo
> is not available or the version on your system is older or newer than
> the one that the compiler was built with.
>
> Intel folks, you can opt out of this particular library dependency with
> '-DLLVM_ENABLE_TERMINFO=OFF' to cmake, which will make it easier for
> others to use it; the compiler can still output color on most terminals
> even without libtinfo.
>
> > tools/testing/selftests/arm64/tags/.gitignore: warning: ignored by one of the .gitignore files
> > tools/testing/selftests/arm64/tags/Makefile: warning: ignored by one of the .gitignore files
> > tools/testing/selftests/arm64/tags/run_tags_test.sh: warning: ignored by one of the .gitignore files
> > tools/testing/selftests/arm64/tags/tags_test.c: warning: ignored by one of the .gitignore files
> > tools/testing/selftests/kvm/.gitignore: warning: ignored by one of the .gitignore files
> > tools/testing/selftests/kvm/Makefile: warning: ignored by one of the .gitignore files
> > tools/testing/selftests/kvm/config: warning: ignored by one of the .gitignore files
> > tools/testing/selftests/kvm/settings: warning: ignored by one of the .gitignore files
> > CALL ../scripts/checksyscalls.sh
> > clang: /lib64/libtinfo.so.6: no version information available (required by clang)
> > <stdin>:1519:2: warning: syscall clone3 not implemented [-W#warnings]
> > 1519 | #warning syscall clone3 not implemented
> > | ^
> > 1 warning generated.
> > make[1]: Leaving directory '/root/linux/build_dir'
> > [root@dell-pem620-01 linux]#
> >
> >
>
> I am able to reproduce this with the kernel.org LLVM builds that I do,
> which should not have that library dependency:
>
> https://mirrors.edge.kernel.org/pub/tools/llvm/
>
> $ curl -LSso .config https://download.01.org/0day-ci/archive/20230621/202306211030.DioMEPhl-lkp@intel.com/config
>
> $ make -skj"$(nproc)" ARCH=hexagon LLVM=$(realpath llvm-16.0.6-x86_64/bin)/ olddefconfig all
> ...
> make[5]: *** No rule to make target 'arch/hexagon/mm/ioremap.o', needed by 'arch/hexagon/mm/built-in.a'.
> ...
> arch/hexagon/kernel/hexagon_ksyms.o: error: local symbol ioremap was exported
> ...
>
> The first issue is resolved with:
>
> diff --git a/arch/hexagon/mm/Makefile b/arch/hexagon/mm/Makefile
> index 49911a906fd0..ba4b04d962d6 100644
> --- a/arch/hexagon/mm/Makefile
> +++ b/arch/hexagon/mm/Makefile
> @@ -3,5 +3,5 @@
> # Makefile for Hexagon memory management subsystem
> #
>
> -obj-y := init.o ioremap.o uaccess.o vm_fault.o cache.o
> +obj-y := init.o uaccess.o vm_fault.o cache.o
> obj-y += copy_to_user.o copy_from_user.o vm_tlb.o
Ah, right, arch/hexagon/mm/ioremap.c is removed, I forgot change that in
Makefile. Thanks.
>
> For the second issue, it seems that ioremap is exported in
> arch/hexagon/kernel/hexagon_ksyms.c but ioremap() is a static inline
> function with CONFIG_GENERIC_IOREMAP. I think we can just remove the
> ioremap and iounmap exports now, as ioremap() calls ioremap_prot(),
> which is exported, and iounmap() is exported in mm/ioremap.c.
>
> diff --git a/arch/hexagon/kernel/hexagon_ksyms.c b/arch/hexagon/kernel/hexagon_ksyms.c
> index ec56ce2d92a2..36a80e31d187 100644
> --- a/arch/hexagon/kernel/hexagon_ksyms.c
> +++ b/arch/hexagon/kernel/hexagon_ksyms.c
> @@ -14,12 +14,10 @@
> EXPORT_SYMBOL(__clear_user_hexagon);
> EXPORT_SYMBOL(raw_copy_from_user);
> EXPORT_SYMBOL(raw_copy_to_user);
> -EXPORT_SYMBOL(iounmap);
> EXPORT_SYMBOL(__vmgetie);
> EXPORT_SYMBOL(__vmsetie);
> EXPORT_SYMBOL(__vmyield);
> EXPORT_SYMBOL(empty_zero_page);
> -EXPORT_SYMBOL(ioremap);
> EXPORT_SYMBOL(memcpy);
> EXPORT_SYMBOL(memset);
>
>
> With those two diffs, the randconfig the robot provides builds and links
> without any errors.
Thanks a lot, I will add this into patch 02/19 of v8 post.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2023-06-25 1:15 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20230620131356.25440-1-bhe@redhat.com>
2023-06-20 13:13 ` [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP Baoquan He
2023-06-21 2:15 ` kernel test robot
2023-06-21 8:50 ` Baoquan He
2023-06-21 19:08 ` Nathan Chancellor
2023-06-25 1:15 ` Baoquan He
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).