linux/tools/perf
Krister Johansen 9c68ae98c6 perf callchain: Reference count maps
If dso__load_kcore frees all of the existing maps, but one has already
been attached to a callchain cursor node, then we can get a SIGSEGV in
any function that happens to try to use this invalid cursor.  Use the
existing map refcount mechanism to forestall cleanup of a map until the
cursor iterates past the node.

Signed-off-by: Krister Johansen <kjlx@templeofstupid.com>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: stable@kernel.org
Fixes: 84c2cafa28 ("perf tools: Reference count struct map")
Link: http://lkml.kernel.org/r/20170106062331.GB2707@templeofstupid.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
2017-01-31 16:19:06 -03:00
..
arch perf probe: Fix wrong register name for arm64 2017-01-26 11:42:43 -03:00
bench perf bench futex: Fix lock-pi help string 2016-12-20 09:37:40 -03:00
Documentation perf ftrace: Introduce new 'ftrace' tool 2017-01-26 11:43:01 -03:00
jvmti perf kvmti: Remove unused Makefile file 2016-11-14 12:42:56 -03:00
pmu-events perf vendor events: Support couple more POWER8 PVRs in mapfile 2016-10-17 13:39:47 -03:00
python perf python: Add tracepoint example 2016-07-12 16:23:35 -03:00
scripts perf/core improvements and fixes: 2016-08-04 11:02:38 +02:00
tests tools lib bpf: Add libbpf_get_error() 2017-01-26 11:42:58 -03:00
trace perf trace: Check if MAP_32BIT is defined (again) 2016-12-20 09:37:40 -03:00
ui perf hists browser: Add e/c hotkeys to expand/collapse callchain for current entry 2017-01-20 13:37:26 -03:00
util perf callchain: Reference count maps 2017-01-31 16:19:06 -03:00
.gitignore perf tools: Add arch/*/include/generated/ to .gitignore 2016-05-30 12:41:46 -03:00
Build perf ftrace: Introduce new 'ftrace' tool 2017-01-26 11:43:01 -03:00
builtin-annotate.c perf annotate: Add branch stack / basic block 2016-09-08 13:44:03 -03:00
builtin-bench.c perf subcmd: Create subcmd library 2015-12-17 14:27:14 -03:00
builtin-buildid-cache.c tools: Introduce str_error_r() 2016-07-12 15:19:47 -03:00
builtin-buildid-list.c perf subcmd: Create subcmd library 2015-12-17 14:27:14 -03:00
builtin-c2c.c perf c2c report: Coalesce by default only by pid,iaddr 2017-01-20 16:52:56 -03:00
builtin-config.c perf config: Mark where are config items from (user or system) 2016-11-14 13:10:37 -03:00
builtin-data.c perf data ctf: Add '--all' option for 'perf data convert' 2016-06-28 10:54:57 -03:00
builtin-diff.c perf hists: Add support for header span 2016-08-23 15:37:33 -03:00
builtin-evlist.c perf evlist: Rename for_each() macros to for_each_entry() 2016-06-23 11:26:15 -03:00
builtin-ftrace.c perf ftrace: Remove needless code setting default tracer 2017-01-26 15:53:27 -03:00
builtin-help.c perf tools: Propagate perf_config() errors 2017-01-27 12:23:33 -03:00
builtin-inject.c perf symbols: Remove symbol_filter_t machinery 2016-09-05 11:14:50 -03:00
builtin-kallsyms.c perf kallsyms: Introduce tool to look for extended symbol information on the running kernel 2017-01-11 16:48:01 -03:00
builtin-kmem.c perf tools: Propagate perf_config() errors 2017-01-27 12:23:33 -03:00
builtin-kvm.c perf kvm: Use NSEC_PER_USEC 2016-08-23 15:37:33 -03:00
builtin-list.c perf list: Support long jevents descriptions 2016-10-03 21:35:47 -03:00
builtin-lock.c perf subcmd: Create subcmd library 2015-12-17 14:27:14 -03:00
builtin-mem.c perf mem: Fix --all-user/--all-kernel options 2016-12-15 16:25:45 -03:00
builtin-probe.c perf probe: Ignore vmlinux Build-id when offline vmlinux given 2016-09-01 12:42:22 -03:00
builtin-record.c perf tools: Propagate perf_config() errors 2017-01-27 12:23:33 -03:00
builtin-report.c perf tools: Propagate perf_config() errors 2017-01-27 12:23:33 -03:00
builtin-sched.c perf sched timehist: Show total wait times for summary 2017-01-17 11:36:44 -03:00
builtin-script.c perf script: Also allow forcing reading of non-root owned files by root 2017-01-16 14:59:15 -03:00
builtin-stat.c perf tools: Remove some needless __maybe_unused 2016-12-15 16:25:45 -03:00
builtin-timechart.c perf timechart: Use NSEC_PER_U?SEC 2016-08-23 15:37:33 -03:00
builtin-top.c perf tools: Propagate perf_config() errors 2017-01-27 12:23:33 -03:00
builtin-trace.c perf trace: Allow specifying list of syscalls and events in -e/--expr/--event 2017-01-11 16:48:01 -03:00
builtin-version.c perf tools: Move cmd_version() to builtin-version.c 2015-12-09 13:42:03 -03:00
builtin.h perf ftrace: Introduce new 'ftrace' tool 2017-01-26 11:43:01 -03:00
check-headers.sh perf tools: Move headers check into bash script 2016-12-15 16:25:44 -03:00
command-list.txt perf ftrace: Introduce new 'ftrace' tool 2017-01-26 11:43:01 -03:00
CREDITS
design.txt
Makefile perf build tests: Do parallell builds with 'build-test' 2016-02-04 15:57:00 -03:00
Makefile.config perf tools: Remove unneccessary feature-dwarf warning 2017-01-16 14:59:15 -03:00
Makefile.perf perf jvmti: Create libdir directory before installing libperf-jvmti.so 2017-01-11 16:48:00 -03:00
MANIFEST tools lib: Add for_each_clear_bit macro 2016-10-24 11:07:33 -03:00
perf-archive.sh
perf-completion.sh
perf-read-vdso.c
perf-sys.h perf powerpc: Fix build-test failure 2016-09-08 13:44:07 -03:00
perf-with-kcore.sh perf tools: Fix perf-with-kcore handling of arguments containing spaces 2015-08-06 16:48:27 -03:00
perf.c perf tools: Propagate perf_config() errors 2017-01-27 12:23:33 -03:00
perf.h perf evsel: Allow to ignore missing pid 2016-12-15 16:25:46 -03:00