Message ID | 20230620131356.25440-3-bhe@redhat.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp3664529vqr; Tue, 20 Jun 2023 06:27:35 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4IyILE8LqASSb/epDFGALDTJjyxaK+RE4I3GHb2XnehsuiwXzkgjewZ4iiUO/611ZXPS/y X-Received: by 2002:a17:90a:748f:b0:256:991a:19e with SMTP id p15-20020a17090a748f00b00256991a019emr2838084pjk.9.1687267655311; Tue, 20 Jun 2023 06:27:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1687267655; cv=none; d=google.com; s=arc-20160816; b=EFtjlsR7OagVZjFnVOPHNrprQc+TeTT8xFSpwQ+vH70Pako8rNBaiq1qmQrdUMajPe 4VoLNvE/d/jSnKgj35BT3yc+mZvA1CYA0MYxNwh+EdsmvR+aEIQwZ6jZNC80WjnJFB60 tM4xQuWnbu48R0R20xblfv1Y62FaGYU8NWpD8xTGyD5be/2NRAsLfN6sgy0IYVJeJ127 fns8JYJ2hPK0TqVQcw2DRZyHfoaU3RFzyxpsbjZTovpwrV9J4STCVnERTaa3gGThsVwI r0R2q9Zk5XZYUFTc4vL+lyBdj7TRK9n4PH4BaGTZhfO/wcxMOQE0Te1mgR956WFkGDfh QM2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=4y8XwGcIF2jz2W1CKgMhspALuMHaJJCUGdTHN9uXAgA=; b=xj6uxsTut6/yktgI5wzC4zVObMiXYz3XhPTWNGR9gclWYxqAGY52RbrVN2NcTD5uaH OoMArB9HgFx3p1Uxi5xG0t1D+a4XVjD8CmgDBhXb4ps5/nQAn6ZfVqJBaXTvIgw1NQe5 HMXJpCipkHUuypW53lQ8YXs9xHwfDQMZAxQ6WqDBb+Px499ksW1uFglu2kWtgV9KCNs/ cHhhvx96/+BL2H96UB5mSiwszglEeaEuU2DBAbx81ZsKmXrAzUkQosTGp6NKR5ZNt+jl T/aQGS2HIpYPfqXvAJqvD3shMyA0bzpRtqDwD6Dr+x4nxCcLXnqiH9PMvoR2XTLQOpiY FArQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=fEP7s+Fr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id 11-20020a17090a004b00b0025e46673b75si9727350pjb.163.2023.06.20.06.27.21; Tue, 20 Jun 2023 06:27:35 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=fEP7s+Fr; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232385AbjFTNPc (ORCPT <rfc822;maxin.john@gmail.com> + 99 others); Tue, 20 Jun 2023 09:15:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48254 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230490AbjFTNP0 (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Tue, 20 Jun 2023 09:15:26 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 309FF183 for <linux-kernel@vger.kernel.org>; Tue, 20 Jun 2023 06:14:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1687266882; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4y8XwGcIF2jz2W1CKgMhspALuMHaJJCUGdTHN9uXAgA=; b=fEP7s+Frt4bNsd3xm2iPu3rUZWj9RYpmJex681MqaD7ArB4lOc1jPSpB2OzSXSUcz4k8t9 29+5buIsQlAZ229KZrsbwDLL0zh9qJkD8T5ROD4o2JRUEKq8IfUMr7znmcnN0/NQk57h/E l5EiWek+0u4NzKcc4x24m0lQwV8yANI= Received: from mimecast-mx02.redhat.com (mimecast-mx02.redhat.com [66.187.233.88]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-219-RSNRVfhJNTGDfKn-1uoIcw-1; Tue, 20 Jun 2023 09:14:40 -0400 X-MC-Unique: RSNRVfhJNTGDfKn-1uoIcw-1 Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.rdu2.redhat.com [10.11.54.8]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 8603488D0FD; Tue, 20 Jun 2023 13:14:26 +0000 (UTC) Received: from MiWiFi-R3L-srv.redhat.com (ovpn-12-166.pek2.redhat.com [10.72.12.166]) by smtp.corp.redhat.com (Postfix) with ESMTP id 21554C1ED96; Tue, 20 Jun 2023 13:14:17 +0000 (UTC) From: Baoquan He <bhe@redhat.com> To: linux-kernel@vger.kernel.org Cc: linux-arch@vger.kernel.org, linux-mm@kvack.org, arnd@arndb.de, hch@lst.de, christophe.leroy@csgroup.eu, rppt@kernel.org, willy@infradead.org, agordeev@linux.ibm.com, wangkefeng.wang@huawei.com, schnelle@linux.ibm.com, David.Laight@ACULAB.COM, shorne@gmail.com, deller@gmx.de, nathan@kernel.org, glaubitz@physik.fu-berlin.de, Baoquan He <bhe@redhat.com>, Brian Cain <bcain@quicinc.com>, linux-hexagon@vger.kernel.org Subject: [PATCH v7 02/19] hexagon: mm: Convert to GENERIC_IOREMAP Date: Tue, 20 Jun 2023 21:13:39 +0800 Message-Id: <20230620131356.25440-3-bhe@redhat.com> In-Reply-To: <20230620131356.25440-1-bhe@redhat.com> References: <20230620131356.25440-1-bhe@redhat.com> MIME-Version: 1.0 Content-type: text/plain Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 3.1 on 10.11.54.8 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_NONE,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1769228368811234342?= X-GMAIL-MSGID: =?utf-8?q?1769228368811234342?= |
Series |
mm: ioremap: Convert architectures to take GENERIC_IOREMAP way
|
|
Commit Message
Baoquan He
June 20, 2023, 1:13 p.m. UTC
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
Comments
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
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]#
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
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.
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)); -}