diff options
| author | Peter Zijlstra <peterz@infradead.org> | 2024-11-28 10:38:56 +0100 |
|---|---|---|
| committer | Peter Zijlstra <peterz@infradead.org> | 2024-12-02 12:01:42 +0100 |
| commit | 18aa6118a1689b4d73c5ebbd917ae3f20c9c0db1 (patch) | |
| tree | f7982ae154e356f6cabc49a05e9656a08ddd3a1c /tools/objtool | |
| parent | 317f2a64618c528539d17fe6957a64106087fbd2 (diff) | |
| download | linux-18aa6118a1689b4d73c5ebbd917ae3f20c9c0db1.tar.gz linux-18aa6118a1689b4d73c5ebbd917ae3f20c9c0db1.tar.bz2 linux-18aa6118a1689b4d73c5ebbd917ae3f20c9c0db1.zip | |
objtool: Convert VALIDATE_UNRET_BEGIN to ANNOTATE
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Link: https://lore.kernel.org/r/20241128094311.358508242@infradead.org
Diffstat (limited to 'tools/objtool')
| -rw-r--r-- | tools/objtool/check.c | 28 |
1 files changed, 5 insertions, 23 deletions
diff --git a/tools/objtool/check.c b/tools/objtool/check.c index 8e39c7f484d8..2a703748cad1 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -2458,33 +2458,15 @@ static int __annotate_instr(int type, struct instruction *insn) return 0; } -static int read_validate_unret_hints(struct objtool_file *file) +static int __annotate_unret(int type, struct instruction *insn) { - struct section *rsec; - struct instruction *insn; - struct reloc *reloc; - - rsec = find_section_by_name(file->elf, ".rela.discard.validate_unret"); - if (!rsec) + if (type != ANNOTYPE_UNRET_BEGIN) return 0; - for_each_reloc(rsec, reloc) { - if (reloc->sym->type != STT_SECTION) { - WARN("unexpected relocation symbol type in %s", rsec->name); - return -1; - } - - insn = find_insn(file, reloc->sym->sec, reloc_addend(reloc)); - if (!insn) { - WARN("bad .discard.instr_end entry"); - return -1; - } - insn->unret = 1; - } - + insn->unret = 1; return 0; -} +} static int read_intra_function_calls(struct objtool_file *file) { @@ -2705,7 +2687,7 @@ static int decode_sections(struct objtool_file *file) if (ret) return ret; - ret = read_validate_unret_hints(file); + ret = read_annotate(file, __annotate_unret); if (ret) return ret; |
