On Wed, Sep 30, 2020 at 10:15 AM Jiri Olsa <jo...@kernel.org> wrote: > > Passing build_id object to dso__set_build_id, so it's easier > to initialize dos's build id object. > > Signed-off-by: Jiri Olsa <jo...@kernel.org>
Acked-by: Ian Rogers <irog...@google.com> Thanks, Ian > --- > tools/perf/util/dso.c | 4 ++-- > tools/perf/util/dso.h | 2 +- > tools/perf/util/header.c | 4 +++- > tools/perf/util/symbol-minimal.c | 2 +- > tools/perf/util/symbol.c | 2 +- > 5 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/tools/perf/util/dso.c b/tools/perf/util/dso.c > index 2f7f01ead9a1..4415ce83150b 100644 > --- a/tools/perf/util/dso.c > +++ b/tools/perf/util/dso.c > @@ -1326,9 +1326,9 @@ void dso__put(struct dso *dso) > dso__delete(dso); > } > > -void dso__set_build_id(struct dso *dso, void *build_id) > +void dso__set_build_id(struct dso *dso, struct build_id *bid) > { > - memcpy(dso->bid.data, build_id, sizeof(dso->bid.data)); > + dso->bid = *bid; > dso->has_build_id = 1; > } > > diff --git a/tools/perf/util/dso.h b/tools/perf/util/dso.h > index eac004210b47..5a5678dbdaa5 100644 > --- a/tools/perf/util/dso.h > +++ b/tools/perf/util/dso.h > @@ -260,7 +260,7 @@ bool dso__sorted_by_name(const struct dso *dso); > void dso__set_sorted_by_name(struct dso *dso); > void dso__sort_by_name(struct dso *dso); > > -void dso__set_build_id(struct dso *dso, void *build_id); > +void dso__set_build_id(struct dso *dso, struct build_id *bid); > bool dso__build_id_equal(const struct dso *dso, u8 *build_id); > void dso__read_running_kernel_build_id(struct dso *dso, > struct machine *machine); > diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c > index fe220f01fc94..21243adbb9fd 100644 > --- a/tools/perf/util/header.c > +++ b/tools/perf/util/header.c > @@ -2082,8 +2082,10 @@ static int __event_process_build_id(struct > perf_record_header_build_id *bev, > dso = machine__findnew_dso(machine, filename); > if (dso != NULL) { > char sbuild_id[SBUILD_ID_SIZE]; > + struct build_id bid; > > - dso__set_build_id(dso, &bev->build_id); > + build_id__init(&bid, bev->build_id, BUILD_ID_SIZE); > + dso__set_build_id(dso, &bid); > > if (dso_space != DSO_SPACE__USER) { > struct kmod_path m = { .name = NULL, }; > diff --git a/tools/perf/util/symbol-minimal.c > b/tools/perf/util/symbol-minimal.c > index dba6b9e5d64e..f9eb0bee7f15 100644 > --- a/tools/perf/util/symbol-minimal.c > +++ b/tools/perf/util/symbol-minimal.c > @@ -349,7 +349,7 @@ int dso__load_sym(struct dso *dso, struct map *map > __maybe_unused, > dso->is_64_bit = ret; > > if (filename__read_build_id(ss->name, &bid) > 0) > - dso__set_build_id(dso, bid.data); > + dso__set_build_id(dso, &bid); > return 0; > } > > diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c > index 369cbad09f0d..976632d0baa0 100644 > --- a/tools/perf/util/symbol.c > +++ b/tools/perf/util/symbol.c > @@ -1818,7 +1818,7 @@ int dso__load(struct dso *dso, struct map *map) > is_regular_file(dso->long_name)) { > __symbol__join_symfs(name, PATH_MAX, dso->long_name); > if (filename__read_build_id(name, &bid) > 0) > - dso__set_build_id(dso, bid.data); > + dso__set_build_id(dso, &bid); > } > > /* > -- > 2.26.2 >