Message ID | 20230429155247.12131-1-rdunlap@infradead.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1689509vqo; Sat, 29 Apr 2023 09:32:35 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7dbpXMa2zcvIKl74mrBMc6Vq8ShvPC77b+bkl1ovAnWk13YPCf/rhzJOekUpU9ThNQ4FAu X-Received: by 2002:a05:6a00:15cf:b0:641:a6d:46b0 with SMTP id o15-20020a056a0015cf00b006410a6d46b0mr13310653pfu.22.1682785954918; Sat, 29 Apr 2023 09:32:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682785954; cv=none; d=google.com; s=arc-20160816; b=PlHx/lOI3k1RIp1VWijoXTS6TAwn9Lo4OABQchIXl4ymSdnfsr9Q7WA1Zi8Y2msj+M PWm9jVVGj1I4jLzsjeNR6hi8+weUpFBEEf6osdMbYBHrCED0h2voG3z2hfR4scmDDx4j koZLEvfrpb7WCssFdGFlNj2VpipmjpvlNzwIkuFWBtAwLxG9v6UaxXMchIwpQ3mA3+2T MsAke/LJjK9gxHAy8IQGUxxac52ltqwHncS+dRsPkTZ3nmZQ/j7J6HA3x8a/PTM0bad5 Q8S8KqrEDypYS7oSYHoKyPRb/esGXZMODLCK61TYfVIF4cBcPVWkrluVVcqZ7DQSi8NR TSzQ== 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 :message-id:date:subject:cc:to:from:dkim-signature; bh=LWVacgMgbgTLP0u9Q7gpdWiCCGyCTSBmMaT6WHBufYk=; b=ZrVakyKWvx30YjqaeAbWWxrdbHl7pgx7mejFOUhKTHXh3U/D06A8gjYufHmxGqoRVK LkyCOPSEmy+c1PqO8kbFu2qjxRl5MN4he2XOihAspvbPuQysTiiiO/ojVjC0xodj3LAO S/NnPj3XpmX1Bwh6M+qicbiz6rG//VtwpzGfKHXOxIkssoI0Oe4Kq9lKJydZExIzG0dp Z90QQ/fmbVeVuLupiN/qCPeKiqyNePe/njqEMA0Zo8K/mVomjEwQjPFMFZUhxQelLo0Z ilBgYx93aPVNId492HsIoPYR8vo93VVe6bsgC9wtQPUKGdP4nXSFjO1awD0F7Adcm+gO 82zg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@infradead.org header.s=bombadil.20210309 header.b=McYafudA; 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f196-20020a6238cd000000b0063414224634si23702915pfa.396.2023.04.29.09.32.18; Sat, 29 Apr 2023 09:32:34 -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=@infradead.org header.s=bombadil.20210309 header.b=McYafudA; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231430AbjD2Pwv (ORCPT <rfc822;chrisjones.unixmen@gmail.com> + 99 others); Sat, 29 Apr 2023 11:52:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231249AbjD2Pwt (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Sat, 29 Apr 2023 11:52:49 -0400 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 851EC1730 for <linux-kernel@vger.kernel.org>; Sat, 29 Apr 2023 08:52:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:In-Reply-To:References; bh=LWVacgMgbgTLP0u9Q7gpdWiCCGyCTSBmMaT6WHBufYk=; b=McYafudAIrdas3REyd1G79ymrY lSADLp1A6aCMlm5XpHXC0I5MTKTFbG7NROWGx5Hx94fP23qp2QCPj5h3MXTtlz8F/kb31TE+o5eOD yceQ9MJ10qt3LyrakIH9rJlPRkI+rDK6/49NEpByaRvRoP2JBL2w40904Z1yLnzApp0537lYnV/CA pw+1/uT+yPirwjXIR/9a9ZADZiZgr1BvEm15I50Lego1nsrkBzAWuttnt6Yg7pmdwCi1KypVCJE+1 mrDJQkvouXX4PRWeAaeCFzjMBoos1GPWKjHMJvhPhvl/zw4NUEo11nSbQFaBvLGcn9EC+EG59uZwy ojOD9onQ==; Received: from [2601:1c2:980:9ec0::2764] (helo=bombadil.infradead.org) by bombadil.infradead.org with esmtpsa (Exim 4.96 #2 (Red Hat Linux)) id 1psmsR-00Cruj-3C; Sat, 29 Apr 2023 15:52:48 +0000 From: Randy Dunlap <rdunlap@infradead.org> To: linux-kernel@vger.kernel.org Cc: Randy Dunlap <rdunlap@infradead.org>, Heiko Stuebner <heiko@sntech.de>, Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt <palmer@dabbelt.com>, Albert Ou <aou@eecs.berkeley.edu>, linux-riscv@lists.infradead.org, Conor Dooley <conor@kernel.org>, Evan Green <evan@rivosinc.com> Subject: [PATCH v2] RISC-V: fix sifive and thead section mismatches in errata Date: Sat, 29 Apr 2023 08:52:47 -0700 Message-Id: <20230429155247.12131-1-rdunlap@infradead.org> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_NONE,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED 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?1764528965446472298?= X-GMAIL-MSGID: =?utf-8?q?1764528965446472298?= |
Series |
[v2] RISC-V: fix sifive and thead section mismatches in errata
|
|
Commit Message
Randy Dunlap
April 29, 2023, 3:52 p.m. UTC
When CONFIG_MODULES is set, __init_or_module becomes <empty>, but when
CONFIG_MODULES is not set, __init_or_module becomes __init.
In the latter case, it causes section mismatch warnings:
WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> sifive_errata_patch_func (section: .init.text)
WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> thead_errata_patch_func (section: .init.text)
Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Cc: Heiko Stuebner <heiko@sntech.de>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Palmer Dabbelt <palmer@dabbelt.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: linux-riscv@lists.infradead.org
Cc: Conor Dooley <conor@kernel.org>
Cc: Evan Green <evan@rivosinc.com>
---
v2: use corrected Fixes: commit info (thanks Conor)
arch/riscv/errata/sifive/errata.c | 8 +++-----
arch/riscv/errata/thead/errata.c | 6 +++---
2 files changed, 6 insertions(+), 8 deletions(-)
Comments
On Sat, Apr 29, 2023 at 8:52 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > When CONFIG_MODULES is set, __init_or_module becomes <empty>, but when > CONFIG_MODULES is not set, __init_or_module becomes __init. > In the latter case, it causes section mismatch warnings: > > WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> sifive_errata_patch_func (section: .init.text) > WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> thead_errata_patch_func (section: .init.text) > > Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()") > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > Cc: Heiko Stuebner <heiko@sntech.de> > Cc: Paul Walmsley <paul.walmsley@sifive.com> > Cc: Palmer Dabbelt <palmer@dabbelt.com> > Cc: Albert Ou <aou@eecs.berkeley.edu> > Cc: linux-riscv@lists.infradead.org > Cc: Conor Dooley <conor@kernel.org> > Cc: Evan Green <evan@rivosinc.com> > --- Thanks, Randy. I'm confused at how I didn't see that when I made the original fix. I feel like repro of these section mismatch errors depend on some other factor I'm not understanding. In any case: Reviewed-by: Evan Green <evan@rivosinc.com>
On Sat, Apr 29, 2023 at 10:21:39AM -0700, Evan Green wrote: > On Sat, Apr 29, 2023 at 8:52 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > > > When CONFIG_MODULES is set, __init_or_module becomes <empty>, but when > > CONFIG_MODULES is not set, __init_or_module becomes __init. > > In the latter case, it causes section mismatch warnings: > > > > WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> sifive_errata_patch_func (section: .init.text) > > WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> thead_errata_patch_func (section: .init.text) > > > > Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()") > > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > > Cc: Heiko Stuebner <heiko@sntech.de> > > Cc: Paul Walmsley <paul.walmsley@sifive.com> > > Cc: Palmer Dabbelt <palmer@dabbelt.com> > > Cc: Albert Ou <aou@eecs.berkeley.edu> > > Cc: linux-riscv@lists.infradead.org > > Cc: Conor Dooley <conor@kernel.org> > > Cc: Evan Green <evan@rivosinc.com> > > --- > > Thanks, Randy. I'm confused at how I didn't see that when I made the > original fix. I feel like repro of these section mismatch errors > depend on some other factor I'm not understanding. In any case: Perhaps you had a cut-down config that did not enable either of the relevant ARCH_ options to get those errata compiled? Thanks for changing the fixes tag Randy, Reviewed-by: Conor Dooley <conor.dooley@microchip.com> Thanks, Conor.
On Sat, Apr 29, 2023 at 10:24 AM Conor Dooley <conor@kernel.org> wrote: > > On Sat, Apr 29, 2023 at 10:21:39AM -0700, Evan Green wrote: > > On Sat, Apr 29, 2023 at 8:52 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > > > > > When CONFIG_MODULES is set, __init_or_module becomes <empty>, but when > > > CONFIG_MODULES is not set, __init_or_module becomes __init. > > > In the latter case, it causes section mismatch warnings: > > > > > > WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> sifive_errata_patch_func (section: .init.text) > > > WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> thead_errata_patch_func (section: .init.text) > > > > > > Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()") > > > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > > > Cc: Heiko Stuebner <heiko@sntech.de> > > > Cc: Paul Walmsley <paul.walmsley@sifive.com> > > > Cc: Palmer Dabbelt <palmer@dabbelt.com> > > > Cc: Albert Ou <aou@eecs.berkeley.edu> > > > Cc: linux-riscv@lists.infradead.org > > > Cc: Conor Dooley <conor@kernel.org> > > > Cc: Evan Green <evan@rivosinc.com> > > > --- > > > > Thanks, Randy. I'm confused at how I didn't see that when I made the > > original fix. I feel like repro of these section mismatch errors > > depend on some other factor I'm not understanding. In any case: > > Perhaps you had a cut-down config that did not enable either of the > relevant ARCH_ options to get those errata compiled? It was weird, my original "fix" (the one listed in this Fixes tag) was needed because while the hwprobe series was clean on Palmer's branch, it generated a "section mismatch" on linux-next. As noted here, it was only with !CONFIG_MODULES, so I explicitly remember generating that config and checking it on linux-next to generate this "fix", and it came out clean. It's like the robots are getting smarter. -Evan
On 4/29/23 10:48, Evan Green wrote: > On Sat, Apr 29, 2023 at 10:24 AM Conor Dooley <conor@kernel.org> wrote: >> >> On Sat, Apr 29, 2023 at 10:21:39AM -0700, Evan Green wrote: >>> On Sat, Apr 29, 2023 at 8:52 AM Randy Dunlap <rdunlap@infradead.org> wrote: >>>> >>>> When CONFIG_MODULES is set, __init_or_module becomes <empty>, but when >>>> CONFIG_MODULES is not set, __init_or_module becomes __init. >>>> In the latter case, it causes section mismatch warnings: >>>> >>>> WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> sifive_errata_patch_func (section: .init.text) >>>> WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> thead_errata_patch_func (section: .init.text) >>>> >>>> Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()") >>>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> >>>> Cc: Heiko Stuebner <heiko@sntech.de> >>>> Cc: Paul Walmsley <paul.walmsley@sifive.com> >>>> Cc: Palmer Dabbelt <palmer@dabbelt.com> >>>> Cc: Albert Ou <aou@eecs.berkeley.edu> >>>> Cc: linux-riscv@lists.infradead.org >>>> Cc: Conor Dooley <conor@kernel.org> >>>> Cc: Evan Green <evan@rivosinc.com> >>>> --- >>> >>> Thanks, Randy. I'm confused at how I didn't see that when I made the >>> original fix. I feel like repro of these section mismatch errors >>> depend on some other factor I'm not understanding. In any case: >> >> Perhaps you had a cut-down config that did not enable either of the >> relevant ARCH_ options to get those errata compiled? > > It was weird, my original "fix" (the one listed in this Fixes tag) was > needed because while the hwprobe series was clean on Palmer's branch, > it generated a "section mismatch" on linux-next. As noted here, it was > only with !CONFIG_MODULES, so I explicitly remember generating that > config and checking it on linux-next to generate this "fix", and it > came out clean. It's like the robots are getting smarter. > -Evan I observed the problem in 8 out of 20 randconfig builds, using linux-next 20230427.
On Sat, Apr 29, 2023 at 10:58 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > > > On 4/29/23 10:48, Evan Green wrote: > > On Sat, Apr 29, 2023 at 10:24 AM Conor Dooley <conor@kernel.org> wrote: > >> > >> On Sat, Apr 29, 2023 at 10:21:39AM -0700, Evan Green wrote: > >>> On Sat, Apr 29, 2023 at 8:52 AM Randy Dunlap <rdunlap@infradead.org> wrote: > >>>> > >>>> When CONFIG_MODULES is set, __init_or_module becomes <empty>, but when > >>>> CONFIG_MODULES is not set, __init_or_module becomes __init. > >>>> In the latter case, it causes section mismatch warnings: > >>>> > >>>> WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> sifive_errata_patch_func (section: .init.text) > >>>> WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> thead_errata_patch_func (section: .init.text) > >>>> > >>>> Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()") > >>>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > >>>> Cc: Heiko Stuebner <heiko@sntech.de> > >>>> Cc: Paul Walmsley <paul.walmsley@sifive.com> > >>>> Cc: Palmer Dabbelt <palmer@dabbelt.com> > >>>> Cc: Albert Ou <aou@eecs.berkeley.edu> > >>>> Cc: linux-riscv@lists.infradead.org > >>>> Cc: Conor Dooley <conor@kernel.org> > >>>> Cc: Evan Green <evan@rivosinc.com> > >>>> --- > >>> > >>> Thanks, Randy. I'm confused at how I didn't see that when I made the > >>> original fix. I feel like repro of these section mismatch errors > >>> depend on some other factor I'm not understanding. In any case: > >> > >> Perhaps you had a cut-down config that did not enable either of the > >> relevant ARCH_ options to get those errata compiled? > > > > It was weird, my original "fix" (the one listed in this Fixes tag) was > > needed because while the hwprobe series was clean on Palmer's branch, > > it generated a "section mismatch" on linux-next. As noted here, it was > > only with !CONFIG_MODULES, so I explicitly remember generating that > > config and checking it on linux-next to generate this "fix", and it > > came out clean. It's like the robots are getting smarter. > > -Evan > > I observed the problem in 8 out of 20 randconfig builds, > using linux-next 20230427. Oh interesting, so not the stock k210_nommu defconfig. That makes me feel a little better at least. -Evan
On Sat, Apr 29, 2023 at 12:06:19PM -0700, Evan Green wrote: > On Sat, Apr 29, 2023 at 10:58 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > > > > > > > On 4/29/23 10:48, Evan Green wrote: > > > On Sat, Apr 29, 2023 at 10:24 AM Conor Dooley <conor@kernel.org> wrote: > > >> > > >> On Sat, Apr 29, 2023 at 10:21:39AM -0700, Evan Green wrote: > > >>> On Sat, Apr 29, 2023 at 8:52 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > >>>> > > >>>> When CONFIG_MODULES is set, __init_or_module becomes <empty>, but when > > >>>> CONFIG_MODULES is not set, __init_or_module becomes __init. > > >>>> In the latter case, it causes section mismatch warnings: > > >>>> > > >>>> WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> sifive_errata_patch_func (section: .init.text) > > >>>> WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> thead_errata_patch_func (section: .init.text) > > >>>> > > >>>> Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()") > > >>>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > > >>>> Cc: Heiko Stuebner <heiko@sntech.de> > > >>>> Cc: Paul Walmsley <paul.walmsley@sifive.com> > > >>>> Cc: Palmer Dabbelt <palmer@dabbelt.com> > > >>>> Cc: Albert Ou <aou@eecs.berkeley.edu> > > >>>> Cc: linux-riscv@lists.infradead.org > > >>>> Cc: Conor Dooley <conor@kernel.org> > > >>>> Cc: Evan Green <evan@rivosinc.com> > > >>>> --- > > >>> > > >>> Thanks, Randy. I'm confused at how I didn't see that when I made the > > >>> original fix. I feel like repro of these section mismatch errors > > >>> depend on some other factor I'm not understanding. In any case: > > >> > > >> Perhaps you had a cut-down config that did not enable either of the > > >> relevant ARCH_ options to get those errata compiled? > > > > > > It was weird, my original "fix" (the one listed in this Fixes tag) was > > > needed because while the hwprobe series was clean on Palmer's branch, > > > it generated a "section mismatch" on linux-next. As noted here, it was > > > only with !CONFIG_MODULES, so I explicitly remember generating that > > > config and checking it on linux-next to generate this "fix", and it > > > came out clean. It's like the robots are getting smarter. > > > -Evan > > > > I observed the problem in 8 out of 20 randconfig builds, > > using linux-next 20230427. > > Oh interesting, so not the stock k210_nommu defconfig. That makes me > feel a little better at least. Ohh man, that's a pretty bad config to try use (if that's your default) for build testing stuff. The k210_mmu defconfig doesn't enable anything other than SOC_CANAAN. I could reproduce Randy's issue on defconfig w/ CONFIG_MODULES disabled.
On Sat, Apr 29, 2023 at 12:11 PM Conor Dooley <conor@kernel.org> wrote: > > On Sat, Apr 29, 2023 at 12:06:19PM -0700, Evan Green wrote: > > On Sat, Apr 29, 2023 at 10:58 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > > > > > > > > > > > On 4/29/23 10:48, Evan Green wrote: > > > > On Sat, Apr 29, 2023 at 10:24 AM Conor Dooley <conor@kernel.org> wrote: > > > >> > > > >> On Sat, Apr 29, 2023 at 10:21:39AM -0700, Evan Green wrote: > > > >>> On Sat, Apr 29, 2023 at 8:52 AM Randy Dunlap <rdunlap@infradead.org> wrote: > > > >>>> > > > >>>> When CONFIG_MODULES is set, __init_or_module becomes <empty>, but when > > > >>>> CONFIG_MODULES is not set, __init_or_module becomes __init. > > > >>>> In the latter case, it causes section mismatch warnings: > > > >>>> > > > >>>> WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> sifive_errata_patch_func (section: .init.text) > > > >>>> WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> thead_errata_patch_func (section: .init.text) > > > >>>> > > > >>>> Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()") > > > >>>> Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > > > >>>> Cc: Heiko Stuebner <heiko@sntech.de> > > > >>>> Cc: Paul Walmsley <paul.walmsley@sifive.com> > > > >>>> Cc: Palmer Dabbelt <palmer@dabbelt.com> > > > >>>> Cc: Albert Ou <aou@eecs.berkeley.edu> > > > >>>> Cc: linux-riscv@lists.infradead.org > > > >>>> Cc: Conor Dooley <conor@kernel.org> > > > >>>> Cc: Evan Green <evan@rivosinc.com> > > > >>>> --- > > > >>> > > > >>> Thanks, Randy. I'm confused at how I didn't see that when I made the > > > >>> original fix. I feel like repro of these section mismatch errors > > > >>> depend on some other factor I'm not understanding. In any case: > > > >> > > > >> Perhaps you had a cut-down config that did not enable either of the > > > >> relevant ARCH_ options to get those errata compiled? > > > > > > > > It was weird, my original "fix" (the one listed in this Fixes tag) was > > > > needed because while the hwprobe series was clean on Palmer's branch, > > > > it generated a "section mismatch" on linux-next. As noted here, it was > > > > only with !CONFIG_MODULES, so I explicitly remember generating that > > > > config and checking it on linux-next to generate this "fix", and it > > > > came out clean. It's like the robots are getting smarter. > > > > -Evan > > > > > > I observed the problem in 8 out of 20 randconfig builds, > > > using linux-next 20230427. > > > > Oh interesting, so not the stock k210_nommu defconfig. That makes me > > feel a little better at least. > > Ohh man, that's a pretty bad config to try use (if that's your default) > for build testing stuff. The k210_mmu defconfig doesn't enable anything > other than SOC_CANAAN. > I could reproduce Randy's issue on defconfig w/ CONFIG_MODULES disabled. That's the one that caught me before, so I remembered it as being "different". I'll try what you describe above next time I'm hunting for section mismatches. -Evan
On Mon, May 01, 2023 at 08:26:19AM -0700, Evan Green wrote: > On Sat, Apr 29, 2023 at 12:11 PM Conor Dooley <conor@kernel.org> wrote: > > Ohh man, that's a pretty bad config to try use (if that's your default) > > for build testing stuff. The k210_mmu defconfig doesn't enable anything > > other than SOC_CANAAN. > > I could reproduce Randy's issue on defconfig w/ CONFIG_MODULES disabled. > > That's the one that caught me before, so I remembered it as being > "different". I'll try what you describe above next time I'm hunting > for section mismatches. By nature of being nommu with lots of stuff disabled, it is a good niche config to test - the nommu stuff mostly gets forgotten about.. On the other hand, it does skip the errata handling stuff which is what caught us out here. Cheers, Conor.
On Sat, 29 Apr 2023 08:52:47 -0700, Randy Dunlap wrote: > When CONFIG_MODULES is set, __init_or_module becomes <empty>, but when > CONFIG_MODULES is not set, __init_or_module becomes __init. > In the latter case, it causes section mismatch warnings: > > WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> sifive_errata_patch_func (section: .init.text) > WARNING: modpost: vmlinux.o: section mismatch in reference: riscv_fill_cpu_mfr_info (section: .text) -> thead_errata_patch_func (section: .init.text) > > [...] Applied, thanks! [1/1] RISC-V: fix sifive and thead section mismatches in errata https://git.kernel.org/palmer/c/a2a58b5ca124 Best regards,
diff -- a/arch/riscv/errata/sifive/errata.c b/arch/riscv/errata/sifive/errata.c --- a/arch/riscv/errata/sifive/errata.c +++ b/arch/riscv/errata/sifive/errata.c @@ -82,11 +82,9 @@ static void __init_or_module warn_miss_e pr_warn("----------------------------------------------------------------\n"); } -void __init_or_module sifive_errata_patch_func(struct alt_entry *begin, - struct alt_entry *end, - unsigned long archid, - unsigned long impid, - unsigned int stage) +void sifive_errata_patch_func(struct alt_entry *begin, struct alt_entry *end, + unsigned long archid, unsigned long impid, + unsigned int stage) { struct alt_entry *alt; u32 cpu_req_errata; diff -- a/arch/riscv/errata/thead/errata.c b/arch/riscv/errata/thead/errata.c --- a/arch/riscv/errata/thead/errata.c +++ b/arch/riscv/errata/thead/errata.c @@ -83,9 +83,9 @@ static u32 thead_errata_probe(unsigned i return cpu_req_errata; } -void __init_or_module thead_errata_patch_func(struct alt_entry *begin, struct alt_entry *end, - unsigned long archid, unsigned long impid, - unsigned int stage) +void thead_errata_patch_func(struct alt_entry *begin, struct alt_entry *end, + unsigned long archid, unsigned long impid, + unsigned int stage) { struct alt_entry *alt; u32 cpu_req_errata = thead_errata_probe(stage, archid, impid);