From: Josh Poimboeuf Date: Wed, 17 Sep 2025 16:03:46 +0000 (-0700) Subject: objtool: Simplify special symbol handling in elf_update_symbol() X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=02cf323a7ee07621f47369c547ae7c7505a7312a;p=thirdparty%2Fkernel%2Flinux.git objtool: Simplify special symbol handling in elf_update_symbol() !sym->sec isn't actually a thing: even STT_UNDEF and other special symbol types belong to NULL section 0. Simplify the initialization of 'shndx' accordingly. Acked-by: Petr Mladek Tested-by: Joe Lawrence Signed-off-by: Josh Poimboeuf --- diff --git a/tools/objtool/elf.c b/tools/objtool/elf.c index 775d017b1b79b..c35726a47c07c 100644 --- a/tools/objtool/elf.c +++ b/tools/objtool/elf.c @@ -637,7 +637,7 @@ static int elf_update_sym_relocs(struct elf *elf, struct symbol *sym) static int elf_update_symbol(struct elf *elf, struct section *symtab, struct section *symtab_shndx, struct symbol *sym) { - Elf32_Word shndx = sym->sec ? sym->sec->idx : SHN_UNDEF; + Elf32_Word shndx; Elf_Data *symtab_data = NULL, *shndx_data = NULL; Elf64_Xword entsize = symtab->sh.sh_entsize; int max_idx, idx = sym->idx; @@ -645,8 +645,7 @@ static int elf_update_symbol(struct elf *elf, struct section *symtab, bool is_special_shndx = sym->sym.st_shndx >= SHN_LORESERVE && sym->sym.st_shndx != SHN_XINDEX; - if (is_special_shndx) - shndx = sym->sym.st_shndx; + shndx = is_special_shndx ? sym->sym.st_shndx : sym->sec->idx; s = elf_getscn(elf->elf, symtab->idx); if (!s) {