diff options
author | Dmitry Koshelev <karaghiozis@gmail.com> | 2021-05-06 13:11:49 +0000 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2021-05-10 09:01:00 -0300 |
commit | a11c9a6e472457cf9eeafb585fc5c912f51d1b23 (patch) | |
tree | da235c9b870b40c221e702bdd69d16e2016c1cc9 /tools/perf | |
parent | 7aa3c9eabdf76017679e975e2ffd50cde3c010b8 (diff) | |
download | linux-a11c9a6e472457cf9eeafb585fc5c912f51d1b23.tar.gz linux-a11c9a6e472457cf9eeafb585fc5c912f51d1b23.tar.bz2 linux-a11c9a6e472457cf9eeafb585fc5c912f51d1b23.zip |
perf session: Fix swapping of cpu_map and stat_config records
'data' field in perf_record_cpu_map_data struct is 16-bit
wide and so should be swapped using bswap_16().
'nr' field in perf_record_stat_config struct should be
swapped before being used for size calculation.
Signed-off-by: Dmitry Koshelev <karaghiozis@gmail.com>
Acked-by: Jiri Olsa <jolsa@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20210506131244.13328-1-karaghiozis@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/util/session.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/perf/util/session.c b/tools/perf/util/session.c index a12cf4f0e97a..106b3d60881a 100644 --- a/tools/perf/util/session.c +++ b/tools/perf/util/session.c @@ -904,7 +904,7 @@ static void perf_event__cpu_map_swap(union perf_event *event, struct perf_record_record_cpu_map *mask; unsigned i; - data->type = bswap_64(data->type); + data->type = bswap_16(data->type); switch (data->type) { case PERF_CPU_MAP__CPUS: @@ -937,7 +937,7 @@ static void perf_event__stat_config_swap(union perf_event *event, { u64 size; - size = event->stat_config.nr * sizeof(event->stat_config.data[0]); + size = bswap_64(event->stat_config.nr) * sizeof(event->stat_config.data[0]); size += 1; /* nr item itself */ mem_bswap_64(&event->stat_config.nr, size); } |