Commit 48bb5dc6cd9d30fe0d594947563da1f8bd9abada
Committed by
Steven Rostedt
1 parent
a0e0fac633
Exists in
master
and in
20 other branches
ftrace: Make recordmcount.c handle __fentry__
With gcc 4.6.0 the -mfentry feature places the function profiling call at the start of the function. When this is used, the call is to __fentry__ and not mcount. Change recordmcount.c to record both callers to __fentry__ and mcount. Link: http://lkml.kernel.org/r/20120807194058.990674363@goodmis.org Acked-by: H. Peter Anvin <hpa@linux.intel.com> Acked-by: John Reiser <jreiser@bitwagon.com> Acked-by: Ingo Molnar <mingo@kernel.org> Cc: Andi Kleen <andi@firstfloor.org> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Showing 1 changed file with 3 additions and 1 deletions Side-by-side Diff
scripts/recordmcount.h
... | ... | @@ -261,11 +261,13 @@ |
261 | 261 | &sym0[Elf_r_sym(relp)]; |
262 | 262 | char const *symname = &str0[w(symp->st_name)]; |
263 | 263 | char const *mcount = gpfx == '_' ? "_mcount" : "mcount"; |
264 | + char const *fentry = "__fentry__"; | |
264 | 265 | |
265 | 266 | if (symname[0] == '.') |
266 | 267 | ++symname; /* ppc64 hack */ |
267 | 268 | if (strcmp(mcount, symname) == 0 || |
268 | - (altmcount && strcmp(altmcount, symname) == 0)) | |
269 | + (altmcount && strcmp(altmcount, symname) == 0) || | |
270 | + (strcmp(fentry, symname) == 0)) | |
269 | 271 | mcountsym = Elf_r_sym(relp); |
270 | 272 | |
271 | 273 | return mcountsym; |