[PATCH] module: Ignore RISC-V mapping symbols too

Palmer Dabbelt palmer at rivosinc.com
Fri Jul 7 09:03:03 PDT 2023


On Thu, 06 Jul 2023 23:06:19 PDT (-0700), thomas at t-8ch.de wrote:
> 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) ?

Thanks, this is fixed in the v2.

>
>>  			continue;
>>
>>  		if (thisval <= addr && thisval > bestval) {
>
>> [..]



More information about the linux-riscv mailing list