mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-09 06:43:09 +00:00
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Ingo Molnar: "Misc smaller fixes" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86: Fix leak in uncore_type_init failure paths perf machine: Use map as success in ip__resolve_ams perf symbols: Fix crash in elf_section_by_name perf trace: Decode architecture-specific signal numbers
This commit is contained in:
commit
b44eeb4d47
@ -3334,6 +3334,8 @@ static int __init uncore_type_init(struct intel_uncore_type *type)
|
|||||||
if (!pmus)
|
if (!pmus)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
|
type->pmus = pmus;
|
||||||
|
|
||||||
type->unconstrainted = (struct event_constraint)
|
type->unconstrainted = (struct event_constraint)
|
||||||
__EVENT_CONSTRAINT(0, (1ULL << type->num_counters) - 1,
|
__EVENT_CONSTRAINT(0, (1ULL << type->num_counters) - 1,
|
||||||
0, type->num_counters, 0, 0);
|
0, type->num_counters, 0, 0);
|
||||||
@ -3369,7 +3371,6 @@ static int __init uncore_type_init(struct intel_uncore_type *type)
|
|||||||
}
|
}
|
||||||
|
|
||||||
type->pmu_group = &uncore_pmu_attr_group;
|
type->pmu_group = &uncore_pmu_attr_group;
|
||||||
type->pmus = pmus;
|
|
||||||
return 0;
|
return 0;
|
||||||
fail:
|
fail:
|
||||||
uncore_type_exit(type);
|
uncore_type_exit(type);
|
||||||
|
@ -825,7 +825,6 @@ static size_t syscall_arg__scnprintf_signum(char *bf, size_t size, struct syscal
|
|||||||
P_SIGNUM(PIPE);
|
P_SIGNUM(PIPE);
|
||||||
P_SIGNUM(ALRM);
|
P_SIGNUM(ALRM);
|
||||||
P_SIGNUM(TERM);
|
P_SIGNUM(TERM);
|
||||||
P_SIGNUM(STKFLT);
|
|
||||||
P_SIGNUM(CHLD);
|
P_SIGNUM(CHLD);
|
||||||
P_SIGNUM(CONT);
|
P_SIGNUM(CONT);
|
||||||
P_SIGNUM(STOP);
|
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(IO);
|
||||||
P_SIGNUM(PWR);
|
P_SIGNUM(PWR);
|
||||||
P_SIGNUM(SYS);
|
P_SIGNUM(SYS);
|
||||||
|
#ifdef SIGEMT
|
||||||
|
P_SIGNUM(EMT);
|
||||||
|
#endif
|
||||||
|
#ifdef SIGSTKFLT
|
||||||
|
P_SIGNUM(STKFLT);
|
||||||
|
#endif
|
||||||
|
#ifdef SIGSWI
|
||||||
|
P_SIGNUM(SWI);
|
||||||
|
#endif
|
||||||
default: break;
|
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,
|
thread__find_addr_location(thread, machine, m, MAP__FUNCTION,
|
||||||
ip, &al);
|
ip, &al);
|
||||||
if (al.sym)
|
if (al.map)
|
||||||
goto found;
|
goto found;
|
||||||
}
|
}
|
||||||
found:
|
found:
|
||||||
|
@ -151,15 +151,15 @@ Elf_Scn *elf_section_by_name(Elf *elf, GElf_Ehdr *ep,
|
|||||||
|
|
||||||
gelf_getshdr(sec, shp);
|
gelf_getshdr(sec, shp);
|
||||||
str = elf_strptr(elf, ep->e_shstrndx, shp->sh_name);
|
str = elf_strptr(elf, ep->e_shstrndx, shp->sh_name);
|
||||||
if (!strcmp(name, str)) {
|
if (str && !strcmp(name, str)) {
|
||||||
if (idx)
|
if (idx)
|
||||||
*idx = cnt;
|
*idx = cnt;
|
||||||
break;
|
return sec;
|
||||||
}
|
}
|
||||||
++cnt;
|
++cnt;
|
||||||
}
|
}
|
||||||
|
|
||||||
return sec;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#define elf_section__for_each_rel(reldata, pos, pos_mem, idx, nr_entries) \
|
#define elf_section__for_each_rel(reldata, pos, pos_mem, idx, nr_entries) \
|
||||||
|
Loading…
Reference in New Issue
Block a user