perf probe powerpc: Ignore SyS symbols irrespective of endianness
This makes sure that the SyS symbols are ignored for any powerpc system,
not just the big endian ones.
Reported-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Signed-off-by: Sandipan Das <sandipan@linux.ibm.com>
Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Fixes: fb6d594231
("perf probe ppc: Use the right prefix when ignoring SyS symbols on ppc")
Link: http://lkml.kernel.org/r/20180828090848.1914-1-sandipan@linux.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
c9f23d2bc2
commit
fa694160cc
1 changed files with 3 additions and 1 deletions
|
@ -22,15 +22,16 @@ bool elf__needs_adjust_symbols(GElf_Ehdr ehdr)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(_CALL_ELF) || _CALL_ELF != 2
|
|
||||||
int arch__choose_best_symbol(struct symbol *syma,
|
int arch__choose_best_symbol(struct symbol *syma,
|
||||||
struct symbol *symb __maybe_unused)
|
struct symbol *symb __maybe_unused)
|
||||||
{
|
{
|
||||||
char *sym = syma->name;
|
char *sym = syma->name;
|
||||||
|
|
||||||
|
#if !defined(_CALL_ELF) || _CALL_ELF != 2
|
||||||
/* Skip over any initial dot */
|
/* Skip over any initial dot */
|
||||||
if (*sym == '.')
|
if (*sym == '.')
|
||||||
sym++;
|
sym++;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Avoid "SyS" kernel syscall aliases */
|
/* Avoid "SyS" kernel syscall aliases */
|
||||||
if (strlen(sym) >= 3 && !strncmp(sym, "SyS", 3))
|
if (strlen(sym) >= 3 && !strncmp(sym, "SyS", 3))
|
||||||
|
@ -41,6 +42,7 @@ int arch__choose_best_symbol(struct symbol *syma,
|
||||||
return SYMBOL_A;
|
return SYMBOL_A;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if !defined(_CALL_ELF) || _CALL_ELF != 2
|
||||||
/* Allow matching against dot variants */
|
/* Allow matching against dot variants */
|
||||||
int arch__compare_symbol_names(const char *namea, const char *nameb)
|
int arch__compare_symbol_names(const char *namea, const char *nameb)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue