perf/urgent fixes:
. Fix build of 'trace' in some systems due to using some architecture-specific signal numbers (Ben Hutchings) . Stop resolving when finding a map in in ip__resolve_ams, this way at least the DSO will be resolved when a symbol isn't (Don Zickus) . Fix crash in elf_section_by_name when not checking if some section string index is valid (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJTHirmAAoJENZQFvNTUqpA/HcP/0WsHQ/ww88PTMzr/WBXh72u c2HTqrW70RMNP9YJqekGiMLAAarVECpu9coueMaQrhyYb+eB2CV1pAjy+tB1CExR Opr3yVtZnWhk+mdWajuWzGrrZxEpn7dc0ZxaxTDQSfktj7t6fmNu+d6Znt3eR3q8 SoTOEC6tJ/V0VuowHibXcZBqwDC8brXYPY/5ZmLnpZFMOyREkUL3Gl2xiCccTYdM erBdrJHiD6CnjgI5nKZu2FSa9XkY5tNSNtOxcxp/1lEQiWsdlbSRFsfXD78Fob4y l+KAzzvGk4TV6imR2h2zHRAe9izoBSQxMSRBXzbzKFSM8REEOnA70FVswfklkSjJ 4pmYEQvizB8Q4Q0ywUeUFseBm8eWRZsyhHXqaezP42jMlBgV8doLxoU9OUZXxBpz xzBRDYhMIOGoUVHbmYhJGd0q/LO/Y4+u89HuGRlTmjH2JjmAJ0AyGcLBau+WiwwK bBdCWHRAhh/H6d1qnNissfIexcnX1+LwO+UARQvhQt959CpvG/HdgjUHT7qyHSfm ShgO+HyC7yt3TNTybOXbkg1kmyeVqH9sjh3sb+aEoCXkVNbjXPggDboTOng7FIp/ M0rnpaCOGIuWPGPse/JxFhwjyUbZypLm1Aas6HA8ATjf0zRDYmmnz+0B4RrXwp/C jS4ouS04Hu372GaPildH =oyOq -----END PGP SIGNATURE----- Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes from Arnaldo Carvalho de Melo: * Fix build of 'trace' in some systems due to using some architecture-specific signal numbers (Ben Hutchings) * Stop resolving when finding a map in in ip__resolve_ams, this way at least the DSO will be resolved when a symbol isn't (Don Zickus) * Fix crash in elf_section_by_name when not checking if some section string index is valid (Jiri Olsa) Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
Коммит
b8ad0f912b
|
@ -825,7 +825,6 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal
|
|||
P_SIGNUM(PIPE);
|
||||
P_SIGNUM(ALRM);
|
||||
P_SIGNUM(TERM);
|
||||
P_SIGNUM(STKFLT);
|
||||
P_SIGNUM(CHLD);
|
||||
P_SIGNUM(CONT);
|
||||
P_SIGNUM(STOP);
|
||||
|
@ -841,6 +840,15 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal
|
|||
P_SIGNUM(IO);
|
||||
P_SIGNUM(PWR);
|
||||
P_SIGNUM(SYS);
|
||||
#ifdef SIGEMT
|
||||
P_SIGNUM(EMT);
|
||||
#endif
|
||||
#ifdef SIGSTKFLT
|
||||
P_SIGNUM(STKFLT);
|
||||
#endif
|
||||
#ifdef SIGSWI
|
||||
P_SIGNUM(SWI);
|
||||
#endif
|
||||
default: break;
|
||||
}
|
||||
|
||||
|
|
|
@ -1213,7 +1213,7 @@ static void ip__resolve_ams(struct machine *machine, struct thread *thread,
|
|||
*/
|
||||
thread__find_addr_location(thread, machine, m, MAP__FUNCTION,
|
||||
ip, &al);
|
||||
if (al.sym)
|
||||
if (al.map)
|
||||
goto found;
|
||||
}
|
||||
found:
|
||||
|
|
|
@ -151,15 +151,15 @@ Elf_Scn *elf_section_by_name(Elf *elf, GElf_Ehdr *ep,
|
|||
|
||||
gelf_getshdr(sec, shp);
|
||||
str = elf_strptr(elf, ep->e_shstrndx, shp->sh_name);
|
||||
if (!strcmp(name, str)) {
|
||||
if (str && !strcmp(name, str)) {
|
||||
if (idx)
|
||||
*idx = cnt;
|
||||
break;
|
||||
return sec;
|
||||
}
|
||||
++cnt;
|
||||
}
|
||||
|
||||
return sec;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#define elf_section__for_each_rel(reldata, pos, pos_mem, idx, nr_entries) \
|
||||
|
|
Загрузка…
Ссылка в новой задаче