summaryrefslogtreecommitdiff
path: root/tools/perf
diff options
context:
space:
mode:
authorWang Yan <wangyan01@kylinos.cn>2026-08-25 17:47:33 +0800
committerNamhyung Kim <namhyung@kernel.org>2026-08-30 23:11:35 -0700
commitaadea57f532882d8bab444646863c7ef8a778ff1 (patch)
tree3d61f549f7b96b64587fc179d0ad5333488e56d2 /tools/perf
parentae9464c65e9d1ad4df4fed516cee9bca3bc614cc (diff)
downloadlinux-next-aadea57f532882d8bab444646863c7ef8a778ff1.tar.gz
linux-next-aadea57f532882d8bab444646863c7ef8a778ff1.zip
perf powerpc-vpadtl: Fix raw_size of DTL samples
In powerpc_vpadtl_sample(), raw_data of the synthetic sample points to a struct powerpc_vpadtl_entry (48 bytes), but raw_size is set to sizeof(record). record is a struct powerpc_vpadtl_entry pointer, so sizeof(record) is the size of the pointer (8 bytes on 64-bit) rather than the size of the record itself. As a result, consumers that bound their access to raw_data by raw_size only see or copy the first 8 bytes of each DTL entry instead of the full record. Use sizeof(*record) so that raw_size reflects the actual length of the raw data. Fixes: 8644834a482a ("perf powerpc: Process the DTL entries in queue and deliver samples") Signed-off-by: Wang Yan <wangyan01@kylinos.cn> Reviewed-by: Athira Rajeev <atrajeev@linux.ibm.com> Reviewed-by: Arnaldo Carvalho de Melo <acme@redhat.com> Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Diffstat (limited to 'tools/perf')
-rw-r--r--tools/perf/util/powerpc-vpadtl.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/tools/perf/util/powerpc-vpadtl.c b/tools/perf/util/powerpc-vpadtl.c
index 710f3093f3f9..af6783cfdb53 100644
--- a/tools/perf/util/powerpc-vpadtl.c
+++ b/tools/perf/util/powerpc-vpadtl.c
@@ -196,7 +196,7 @@ static int powerpc_vpadtl_sample(struct powerpc_vpadtl_entry *record,
sample.cpumode = PERF_RECORD_MISC_KERNEL;
sample.time = save;
sample.raw_data = record;
- sample.raw_size = sizeof(record);
+ sample.raw_size = sizeof(*record);
event.sample.header.type = PERF_RECORD_SAMPLE;
event.sample.header.misc = sample.cpumode;
event.sample.header.size = sizeof(struct perf_event_header);