From a00221d94d7027f16424be06da29a6e2d0eaf062 Mon Sep 17 00:00:00 2001 From: Frederic Weisbecker Date: Thu, 8 Oct 2009 22:07:29 +0200 Subject: [PATCH] --- yaml --- r: 169482 b: refs/heads/master c: 26dd2cb074d9dc41c9e3cddd7bf175fd0a41febc h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/tools/perf/util/header.c | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index b5fda4fa59e3..41e30b0867ec 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 97ea1a7fa62af0d8d49a0fc12796b0073537c9d8 +refs/heads/master: 26dd2cb074d9dc41c9e3cddd7bf175fd0a41febc diff --git a/trunk/tools/perf/util/header.c b/trunk/tools/perf/util/header.c index 212fade7ee74..9aae360c0f28 100644 --- a/trunk/tools/perf/util/header.c +++ b/trunk/tools/perf/util/header.c @@ -287,10 +287,16 @@ struct perf_header *perf_header__read(int fd) do_read(fd, &f_header, sizeof(f_header)); if (f_header.magic != PERF_MAGIC || - f_header.size != sizeof(f_header) || f_header.attr_size != sizeof(f_attr)) die("incompatible file format"); + if (f_header.size != sizeof(f_header)) { + /* Support the previous format */ + if (f_header.size == offsetof(typeof(f_header), trace_info)) + f_header.trace_info.size = 0; + else + die("incompatible file format"); + } nr_attrs = f_header.attrs.size / sizeof(f_attr); lseek(fd, f_header.attrs.offset, SEEK_SET);