modpost: remove is_shndx_special() check from section_rel(a)
This check is unneeded. Without it, sec_name() will returns the null string "", then section_mismatch() will return immediately. Anyway, special section indices rarely appear in these loops. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
This commit is contained in:
parent
04ed3b4763
commit
a9bb3e5d57
|
@ -1372,7 +1372,6 @@ static int addend_mips_rel(struct elf_info *elf, Elf_Shdr *sechdr, Elf_Rela *r)
|
|||
static void section_rela(const char *modname, struct elf_info *elf,
|
||||
Elf_Shdr *sechdr)
|
||||
{
|
||||
Elf_Sym *sym;
|
||||
Elf_Rela *rela;
|
||||
Elf_Rela r;
|
||||
unsigned int r_sym;
|
||||
|
@ -1415,11 +1414,8 @@ static void section_rela(const char *modname, struct elf_info *elf,
|
|||
continue;
|
||||
break;
|
||||
}
|
||||
sym = elf->symtab_start + r_sym;
|
||||
/* Skip special sections */
|
||||
if (is_shndx_special(sym->st_shndx))
|
||||
continue;
|
||||
check_section_mismatch(modname, elf, sym,
|
||||
|
||||
check_section_mismatch(modname, elf, elf->symtab_start + r_sym,
|
||||
fsecndx, fromsec, r.r_offset, r.r_addend);
|
||||
}
|
||||
}
|
||||
|
@ -1427,7 +1423,6 @@ static void section_rela(const char *modname, struct elf_info *elf,
|
|||
static void section_rel(const char *modname, struct elf_info *elf,
|
||||
Elf_Shdr *sechdr)
|
||||
{
|
||||
Elf_Sym *sym;
|
||||
Elf_Rel *rel;
|
||||
Elf_Rela r;
|
||||
unsigned int r_sym;
|
||||
|
@ -1474,11 +1469,8 @@ static void section_rel(const char *modname, struct elf_info *elf,
|
|||
default:
|
||||
fatal("Please add code to calculate addend for this architecture\n");
|
||||
}
|
||||
sym = elf->symtab_start + r_sym;
|
||||
/* Skip special sections */
|
||||
if (is_shndx_special(sym->st_shndx))
|
||||
continue;
|
||||
check_section_mismatch(modname, elf, sym,
|
||||
|
||||
check_section_mismatch(modname, elf, elf->symtab_start + r_sym,
|
||||
fsecndx, fromsec, r.r_offset, r.r_addend);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -151,11 +151,6 @@ struct elf_info {
|
|||
Elf32_Word *symtab_shndx_stop;
|
||||
};
|
||||
|
||||
static inline int is_shndx_special(unsigned int i)
|
||||
{
|
||||
return i != SHN_XINDEX && i >= SHN_LORESERVE && i <= SHN_HIRESERVE;
|
||||
}
|
||||
|
||||
/* Accessor for sym->st_shndx, hides ugliness of "64k sections" */
|
||||
static inline unsigned int get_secindex(const struct elf_info *info,
|
||||
const Elf_Sym *sym)
|
||||
|
|
Loading…
Reference in New Issue