aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2019-02-28 02:29:50 -0500
committerIngo Molnar <mingo@kernel.org>2019-02-28 02:29:50 -0500
commitc978b9460fe1d4a1e1effa0abd6bd69b18a098a8 (patch)
treeeecc4c6179dea191c55ac8ef50467573b29a0b06 /drivers
parent0a1571243d3f150fa99c6f41f1b8e17a307a2b8b (diff)
parentde667cce7f4f96b6e22da8fd9c065b961f355080 (diff)
Merge tag 'perf-core-for-mingo-5.1-20190225' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
Pull perf/core improvements and fixes from Arnaldo Carvalho de Melo: perf annotate: Wei Li: - Fix getting source line failure perf script: Andi Kleen: - Handle missing fields with -F +... perf data: Jiri Olsa: - Prep work to support per-cpu files in a directory. Intel PT: Adrian Hunter: - Improve thread_stack__no_call_return() - Hide x86 retpolines in thread stacks. - exported SQL viewer refactorings, new 'top calls' report.. Alexander Shishkin: - Copy parent's address filter offsets on clone - Fix address filters for vmas with non-zero offset. Applies to ARM's CoreSight as well. python scripts: Tony Jones: - Python3 support for several 'perf script' python scripts. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hwtracing/coresight/coresight-etm-perf.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/hwtracing/coresight/coresight-etm-perf.c b/drivers/hwtracing/coresight/coresight-etm-perf.c
index 8c88bf0a1e5f..4d5a2b9f9d6a 100644
--- a/drivers/hwtracing/coresight/coresight-etm-perf.c
+++ b/drivers/hwtracing/coresight/coresight-etm-perf.c
@@ -433,15 +433,16 @@ static int etm_addr_filters_validate(struct list_head *filters)
433static void etm_addr_filters_sync(struct perf_event *event) 433static void etm_addr_filters_sync(struct perf_event *event)
434{ 434{
435 struct perf_addr_filters_head *head = perf_event_addr_filters(event); 435 struct perf_addr_filters_head *head = perf_event_addr_filters(event);
436 unsigned long start, stop, *offs = event->addr_filters_offs; 436 unsigned long start, stop;
437 struct perf_addr_filter_range *fr = event->addr_filter_ranges;
437 struct etm_filters *filters = event->hw.addr_filters; 438 struct etm_filters *filters = event->hw.addr_filters;
438 struct etm_filter *etm_filter; 439 struct etm_filter *etm_filter;
439 struct perf_addr_filter *filter; 440 struct perf_addr_filter *filter;
440 int i = 0; 441 int i = 0;
441 442
442 list_for_each_entry(filter, &head->list, entry) { 443 list_for_each_entry(filter, &head->list, entry) {
443 start = filter->offset + offs[i]; 444 start = fr[i].start;
444 stop = start + filter->size; 445 stop = start + fr[i].size;
445 etm_filter = &filters->etm_filter[i]; 446 etm_filter = &filters->etm_filter[i];
446 447
447 switch (filter->action) { 448 switch (filter->action) {