[PATCH] module: Ignore RISC-V mapping symbols too
Thomas Weißschuh
thomas at t-8ch.de
Thu Jul 6 23:06:19 PDT 2023
On 2023-07-06 22:40:01-0700, Palmer Dabbelt wrote:
> RISC-V has an extended form of mapping symbols that we use to encode
> the ISA when it changes in the middle of an ELF. This trips up modpost
> as a build failure, I haven't yet verified it yet but I believe the
> kallsyms difference should result in stacks looking sane again.
> [..]
> diff --git a/kernel/module/kallsyms.c b/kernel/module/kallsyms.c
> index ef73ae7c8909..1e988e542c5d 100644
> --- a/kernel/module/kallsyms.c
> +++ b/kernel/module/kallsyms.c
> @@ -12,6 +12,12 @@
> #include <linux/bsearch.h>
> #include "internal.h"
>
> +#ifdef CONFIG_RISCV
> +#define IS_RISCV 1
> +#else
> +#define IS_RISCV 0
> +#endif
> +
> /* Lookup exported symbol in given range of kernel_symbols */
> static const struct kernel_symbol *lookup_exported_symbol(const char *name,
> const struct kernel_symbol *start,
> @@ -289,7 +295,7 @@ static const char *find_kallsyms_symbol(struct module *mod,
> * and inserted at a whim.
> */
> if (*kallsyms_symbol_name(kallsyms, i) == '\0' ||
> - is_mapping_symbol(kallsyms_symbol_name(kallsyms, i)))
> + is_mapping_symbol(kallsyms_symbol_name(kallsyms, i), IS_RISCV))
IS_BUILTIN(CONFIG_RISCV) or IS_ENABLED(CONFIG_RISCV) ?
> continue;
>
> if (thisval <= addr && thisval > bestval) {
> [..]
More information about the linux-riscv
mailing list