On Thu, Feb 17, 2022 at 5:19 AM Jiri Olsa <jolsa@xxxxxxxxxx> wrote: > > Both bpf_program__set_priv/bpf_program__priv are deprecated > and will be eventually removed. > > Using hashmap to replace that functionality. > > Suggested-by: Andrii Nakryiko <andrii@xxxxxxxxxx> > Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx> > --- > tools/perf/util/bpf-loader.c | 91 +++++++++++++++++++++++++++++------- > 1 file changed, 75 insertions(+), 16 deletions(-) > [...] > + > +static int program_set_priv(struct bpf_program *prog, void *priv) > +{ > + void *old_priv; > + > + if (!bpf_program_hash) { > + bpf_program_hash = hashmap__new(ptr_hash, ptr_equal, NULL); > + if (!bpf_program_hash) should use IS_ERR here > + return -ENOMEM; > + } > + > + old_priv = program_priv(prog); > + if (old_priv) { > + clear_prog_priv(prog, old_priv); > + return hashmap__set(bpf_program_hash, prog, priv, NULL, NULL); > + } > + return hashmap__add(bpf_program_hash, prog, priv); > } [...]