diff options
Diffstat (limited to 'scripts/mod/modpost.c')
| -rw-r--r-- | scripts/mod/modpost.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 973b5e5ae2dd..cb6406f485a9 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -1383,13 +1383,15 @@ static void section_rela(struct module *mod, struct elf_info *elf,  	const Elf_Rela *rela;  	for (rela = start; rela < stop; rela++) { +		Elf_Sym *tsym;  		Elf_Addr taddr, r_offset;  		unsigned int r_type, r_sym;  		r_offset = TO_NATIVE(rela->r_offset);  		get_rel_type_and_sym(elf, rela->r_info, &r_type, &r_sym); -		taddr = TO_NATIVE(rela->r_addend); +		tsym = elf->symtab_start + r_sym; +		taddr = tsym->st_value + TO_NATIVE(rela->r_addend);  		switch (elf->hdr->e_machine) {  		case EM_RISCV: @@ -1404,7 +1406,7 @@ static void section_rela(struct module *mod, struct elf_info *elf,  			break;  		} -		check_section_mismatch(mod, elf, elf->symtab_start + r_sym, +		check_section_mismatch(mod, elf, tsym,  				       fsecndx, fromsec, r_offset, taddr);  	}  }  | 
