Use the e_machine rather than arch string matching for powerpc.
Signed-off-by: Ian Rogers <irogers@google.com>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Alexander Gordeev <agordeev@linux.ibm.com>
Cc: Heiko Carstens <hca@linux.ibm.com>
Cc: Honglei Wang <jameshongleiwang@126.com>
Cc: Jan Polensky <japo@linux.ibm.com>
Cc: Sumanth Korikkar <sumanthk@linux.ibm.com>
Cc: Thomas Richter <tmricht@linux.ibm.com>
Cc: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
struct map *kmap;
struct symbol *sym;
u64 ip;
- const char *arch = perf_env__arch(machine->env);
+ uint16_t e_machine = perf_env__e_machine(machine->env, /*e_flags=*/NULL);
+ bool is_powerpc = e_machine == EM_PPC64 || e_machine == EM_PPC;
if (list_empty(&callstack_filters))
return true;
* incase first or second callstack index entry has 0
* address for powerpc.
*/
- if (!callstack || (!callstack[i] && (strcmp(arch, "powerpc") ||
- (i != 1 && i != 2))))
+ if (!callstack || (!callstack[i] && (!is_powerpc || (i != 1 && i != 2))))
break;
ip = callstack[i];