]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
objtool: Add arch specific function arch_ftrace_match()
authorSathvika Vasireddy <sv@linux.ibm.com>
Mon, 14 Nov 2022 17:57:52 +0000 (23:27 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Fri, 18 Nov 2022 08:00:16 +0000 (19:00 +1100)
Add architecture specific function to look for relocation records
pointing to architecture specific symbols.

Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Tested-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Sathvika Vasireddy <sv@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20221114175754.1131267-15-sv@linux.ibm.com
tools/objtool/arch/x86/decode.c
tools/objtool/check.c
tools/objtool/include/objtool/arch.h

index 1c253b4b7ce00b0cc4824b63d57cea8095a2ba87..af7ad09c926c43d53abeacbd27cfd55deb314e46 100644 (file)
 #include <objtool/builtin.h>
 #include <arch/elf.h>
 
+int arch_ftrace_match(char *name)
+{
+       return !strcmp(name, "__fentry__");
+}
+
 static int is_x86_64(const struct elf *elf)
 {
        switch (elf->ehdr.e_machine) {
index 2d7153b5d5d16262c5bb40436c2064b09b3562a3..7580c66ca5c8e51394d48f9eea2e42c835431f50 100644 (file)
@@ -2316,7 +2316,7 @@ static int classify_symbols(struct objtool_file *file)
                        if (arch_is_rethunk(func))
                                func->return_thunk = true;
 
-                       if (!strcmp(func->name, "__fentry__"))
+                       if (arch_ftrace_match(func->name))
                                func->fentry = true;
 
                        if (is_profiling_func(func->name))
index beb2f3aa94ffc0960aed21802e9548a669f561fe..5149330f400f52809e6e3507a2c3f81ede923e75 100644 (file)
@@ -69,6 +69,8 @@ struct stack_op {
 
 struct instruction;
 
+int arch_ftrace_match(char *name);
+
 void arch_initial_func_cfi_state(struct cfi_init_state *state);
 
 int arch_decode_instruction(struct objtool_file *file, const struct section *sec,