mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-29 05:44:11 +00:00
perf tools: Do not remove addr_location.thread in thread__find_map()
The thread__find_map() is to find a map for a given address in the
given thread's address space. It searches maps based on the cpu mode
and fills various information in the addr_location data structure.
It might change al->maps and al->map, but not al->thread. Then I
think no reason to not set the al->thread at the beginning.
Also get rid of the duplicate 'al->map = NULL' part.
Fixes: 0dd5041c9a
("perf addr_location: Add init/exit/copy functions")
Acked-by: Ian Rogers <irogers@google.com>
Acked-by: James Clark <james.clark@arm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
Cc: Mike Leach <mike.leach@linaro.org>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: John Garry <john.g.garry@oracle.com>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
628eaa4e87
commit
36cee69f57
1 changed files with 2 additions and 5 deletions
|
@ -581,15 +581,14 @@ struct map *thread__find_map(struct thread *thread, u8 cpumode, u64 addr,
|
|||
maps__zput(al->maps);
|
||||
map__zput(al->map);
|
||||
thread__zput(al->thread);
|
||||
al->thread = thread__get(thread);
|
||||
|
||||
al->addr = addr;
|
||||
al->cpumode = cpumode;
|
||||
al->filtered = 0;
|
||||
|
||||
if (machine == NULL) {
|
||||
al->map = NULL;
|
||||
if (machine == NULL)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (cpumode == PERF_RECORD_MISC_KERNEL && perf_host) {
|
||||
al->level = 'k';
|
||||
|
@ -605,7 +604,6 @@ struct map *thread__find_map(struct thread *thread, u8 cpumode, u64 addr,
|
|||
al->level = 'u';
|
||||
} else {
|
||||
al->level = 'H';
|
||||
al->map = NULL;
|
||||
|
||||
if ((cpumode == PERF_RECORD_MISC_GUEST_USER ||
|
||||
cpumode == PERF_RECORD_MISC_GUEST_KERNEL) &&
|
||||
|
@ -619,7 +617,6 @@ struct map *thread__find_map(struct thread *thread, u8 cpumode, u64 addr,
|
|||
return NULL;
|
||||
}
|
||||
al->maps = maps__get(maps);
|
||||
al->thread = thread__get(thread);
|
||||
al->map = map__get(maps__find(maps, al->addr));
|
||||
if (al->map != NULL) {
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue