mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
RISC-V: fix sifive and thead section mismatches in errata
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: bb3f89487f
("RISC-V: hwprobe: Remove __init on probe_vendor_features()")
Signed-off-by: Randy Dunlap <rdunlap@infradead.org>
Reviewed-by: Evan Green <evan@rivosinc.com>
Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
Link: https://lore.kernel.org/r/20230429155247.12131-1-rdunlap@infradead.org
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
This commit is contained in:
parent
41cad8284d
commit
a2a58b5ca1
@ -82,11 +82,9 @@ static void __init_or_module warn_miss_errata(u32 miss_errata)
|
|||||||
pr_warn("----------------------------------------------------------------\n");
|
pr_warn("----------------------------------------------------------------\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init_or_module sifive_errata_patch_func(struct alt_entry *begin,
|
void sifive_errata_patch_func(struct alt_entry *begin, struct alt_entry *end,
|
||||||
struct alt_entry *end,
|
unsigned long archid, unsigned long impid,
|
||||||
unsigned long archid,
|
unsigned int stage)
|
||||||
unsigned long impid,
|
|
||||||
unsigned int stage)
|
|
||||||
{
|
{
|
||||||
struct alt_entry *alt;
|
struct alt_entry *alt;
|
||||||
u32 cpu_req_errata;
|
u32 cpu_req_errata;
|
||||||
|
@ -83,9 +83,9 @@ static u32 thead_errata_probe(unsigned int stage,
|
|||||||
return cpu_req_errata;
|
return cpu_req_errata;
|
||||||
}
|
}
|
||||||
|
|
||||||
void __init_or_module thead_errata_patch_func(struct alt_entry *begin, struct alt_entry *end,
|
void thead_errata_patch_func(struct alt_entry *begin, struct alt_entry *end,
|
||||||
unsigned long archid, unsigned long impid,
|
unsigned long archid, unsigned long impid,
|
||||||
unsigned int stage)
|
unsigned int stage)
|
||||||
{
|
{
|
||||||
struct alt_entry *alt;
|
struct alt_entry *alt;
|
||||||
u32 cpu_req_errata = thead_errata_probe(stage, archid, impid);
|
u32 cpu_req_errata = thead_errata_probe(stage, archid, impid);
|
||||||
|
Loading…
Reference in New Issue
Block a user