Message ID | 20230429043530.20503-1-rdunlap@infradead.org (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | riscv: fix sifive and thead section mismatches in errata | expand |
Context | Check | Description |
---|---|---|
conchuod/cover_letter | success | Single patches do not need cover letters |
conchuod/tree_selection | success | Guessed tree name to be fixes at HEAD 1b50f956c8fe |
conchuod/fixes_present | success | Fixes tag present in non-next series |
conchuod/maintainers_pattern | success | MAINTAINERS pattern errors before the patch: 1 and now 1 |
conchuod/verify_signedoff | success | Signed-off-by tag matches author and committer |
conchuod/kdoc | success | Errors and warnings before: 0 this patch: 0 |
conchuod/build_rv64_clang_allmodconfig | success | Errors and warnings before: 18 this patch: 18 |
conchuod/module_param | success | Was 0 now: 0 |
conchuod/build_rv64_gcc_allmodconfig | success | Errors and warnings before: 18 this patch: 18 |
conchuod/build_rv32_defconfig | success | Build OK |
conchuod/dtb_warn_rv64 | success | Errors and warnings before: 3 this patch: 3 |
conchuod/header_inline | success | No static functions without inline keyword in header files |
conchuod/checkpatch | warning | WARNING: 'thead' may be misspelled - perhaps 'thread'? |
conchuod/source_inline | success | Was 0 now: 0 |
conchuod/build_rv64_nommu_k210_defconfig | success | Build OK |
conchuod/verify_fixes | success | Fixes tag looks correct |
conchuod/build_rv64_nommu_virt_defconfig | success | Build OK |
On Fri, Apr 28, 2023 at 09:35:30PM -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) > > It appears that CONFIG_MODULES not set is not tested very much. I dunno if it the testing is *that* rare, because I'm not sure that the fixes tags below are correct. I think that it is actually: Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()") That was only applied on 20/04. Cheers, Conor. > Fixes: a8e910168bba ("riscv: implement module alternatives") > Fixes: a35707c3d850 ("riscv: add memory-type errata for T-Head") > 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 > --- > arch/riscv/errata/sifive/errata.c | 8 +++----- > arch/riscv/errata/thead/errata.c | 6 +++--- > 2 files changed, 6 insertions(+), 8 deletions(-) > > 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);
On 4/29/23 02:50, Conor Dooley wrote: > On Fri, Apr 28, 2023 at 09:35:30PM -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) >> >> It appears that CONFIG_MODULES not set is not tested very much. > > I dunno if it the testing is *that* rare, because I'm not sure that the > fixes tags below are correct. I think that it is actually: > Fixes: bb3f89487fd9 ("RISC-V: hwprobe: Remove __init on probe_vendor_features()") > That was only applied on 20/04. Yeah, that Fixes: commit looks like the right one. I'll send a v2. Thanks. > >> Fixes: a8e910168bba ("riscv: implement module alternatives") >> Fixes: a35707c3d850 ("riscv: add memory-type errata for T-Head") >> 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 >> --- >> arch/riscv/errata/sifive/errata.c | 8 +++----- >> arch/riscv/errata/thead/errata.c | 6 +++--- >> 2 files changed, 6 insertions(+), 8 deletions(-) >>
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);
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) It appears that CONFIG_MODULES not set is not tested very much. Fixes: a8e910168bba ("riscv: implement module alternatives") Fixes: a35707c3d850 ("riscv: add memory-type errata for T-Head") 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 --- arch/riscv/errata/sifive/errata.c | 8 +++----- arch/riscv/errata/thead/errata.c | 6 +++--- 2 files changed, 6 insertions(+), 8 deletions(-)