summaryrefslogtreecommitdiff
path: root/tools/perf/util/header.c
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2021-02-15 09:06:39 +0100
committerTakashi Iwai <tiwai@suse.de>2021-02-15 09:07:01 +0100
commitde1528ee7cb7c161444dadbc971d050bebb5cbe7 (patch)
treea1f53cd279966802de097c0f0f6625b49e6903f1 /tools/perf/util/header.c
parent0d3070f5e6551d8a759619e85736e49a3bf40398 (diff)
parent15447b64789d9ade71eb374d5ae1f37d0bbce0bd (diff)
Merge branch 'for-next' into for-linus
Unification of 5.12-devel branches. Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'tools/perf/util/header.c')
-rw-r--r--tools/perf/util/header.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 062383e225a3..c4ed3dc2c8f4 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -3323,6 +3323,14 @@ int perf_session__write_header(struct perf_session *session,
attr_offset = lseek(ff.fd, 0, SEEK_CUR);
evlist__for_each_entry(evlist, evsel) {
+ if (evsel->core.attr.size < sizeof(evsel->core.attr)) {
+ /*
+ * We are likely in "perf inject" and have read
+ * from an older file. Update attr size so that
+ * reader gets the right offset to the ids.
+ */
+ evsel->core.attr.size = sizeof(evsel->core.attr);
+ }
f_attr = (struct perf_file_attr){
.attr = evsel->core.attr,
.ids = {