summaryrefslogtreecommitdiff
path: root/arch/mips/boot/tools/relocs.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2025-03-04 11:15:26 +0100
committerIngo Molnar <mingo@kernel.org>2025-03-04 11:15:26 +0100
commit1b4c36f9b11e4a68f6174d1b6542b50cd29cddd2 (patch)
tree735b11a744d0acd18a1d7b7a4a5fa63fc6d23b92 /arch/mips/boot/tools/relocs.c
parentd0ba9bcf001c7907e4755b0e498f5ff9d1a228ef (diff)
parentf6bdaab79ee4228a143ee1b4cb80416d6ffc0c63 (diff)
Merge branch 'x86/urgent' into x86/cpu, to pick up dependent commits
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/mips/boot/tools/relocs.c')
-rw-r--r--arch/mips/boot/tools/relocs.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/mips/boot/tools/relocs.c b/arch/mips/boot/tools/relocs.c
index a88d66c46d7f..9863e1d5c62e 100644
--- a/arch/mips/boot/tools/relocs.c
+++ b/arch/mips/boot/tools/relocs.c
@@ -468,6 +468,8 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
Elf_Sym *sym, const char *symname))
{
int i;
+ struct section *extab_sec = sec_lookup("__ex_table");
+ int extab_index = extab_sec ? extab_sec - secs : -1;
/* Walk through the relocations */
for (i = 0; i < ehdr.e_shnum; i++) {
@@ -480,6 +482,9 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
if (sec->shdr.sh_type != SHT_REL_TYPE)
continue;
+ if (sec->shdr.sh_info == extab_index)
+ continue;
+
sec_symtab = sec->link;
sec_applies = &secs[sec->shdr.sh_info];
if (!(sec_applies->shdr.sh_flags & SHF_ALLOC))