tools lib bpf: Make bpf_program__get_private() use IS_ERR()
Subsystems (3)
tip-bot for Arnaldo Carvalho de Melo
merge botCommit-ID: be834ffbd15ea9d73ba96fdbdcb1012add7e3bdf Gitweb: http://git.kernel.org/tip/be834ffbd15ea9d73ba96fdbdcb1012add7e3bdf Author: Arnaldo Carvalho de Melo <[email protected]> AuthorDate: Fri, 3 Jun 2016 12:36:39 -0300 Committer: Arnaldo Carvalho de Melo <[email protected]> CommitDate: Mon, 6 Jun 2016 18:19:34 -0300
tools lib bpf: Make bpf_program__get_private() use IS_ERR()
For consistency with bpf_map__priv() and elsewhere.
Acked-by Wang Nan <[email protected]>
Cc Adrian Hunter <[email protected]>
Cc David Ahern <[email protected]>
Cc Jiri Olsa <[email protected]>
Cc Milian Wolff <[email protected]>
Cc Namhyung Kim <[email protected]>
Signed-off-by Arnaldo Carvalho de Melo <[email protected]>
--- tools/lib/bpf/libbpf.c | 5 ++--- tools/lib/bpf/libbpf.h | 3 +-- tools/perf/util/bpf-loader.c | 27 ++++++++++++--------------- 3 files changed, 15 insertions(+), 20 deletions(-)
tools/lib/bpf/libbpf.c +2 -3
@@ -1230,10 +1230,9 @@ int bpf_program__set_private(struct bpf_program *prog,return 0 ; } -int bpf_program__get_private (struct bpf_program *prog,void **ppriv) +void *bpf_program__priv (struct bpf_program *prog) { - *ppriv = prog->priv; -return 0 ; +return prog ? prog->priv :ERR_PTR (-EINVAL ); }const char *bpf_program__title (struct bpf_program *prog,bool needs_copy)
tools/lib/bpf/libbpf.h +1 -2
@@ -81,8 +81,7 @@ typedef void (*bpf_program_clear_priv_t)(struct bpf_program *,int bpf_program__set_private (struct bpf_program *prog,void *priv,bpf_program_clear_priv_t clear_priv); -int bpf_program__get_private (struct bpf_program *prog, -void **ppriv); +void *bpf_program__priv (struct bpf_program *prog);const char *bpf_program__title (struct bpf_program *prog,bool needs_copy);
tools/perf/util/bpf-loader.c +12 -15
@@ -380,15 +380,14 @@ preproc_gen_prologue(struct bpf_program *prog, int n, struct bpf_insn *orig_insns, int orig_insns_cnt, struct bpf_prog_prep_result *res) { + struct bpf_prog_priv *priv = bpf_program__priv(prog);struct probe_trace_event *tev;struct perf_probe_event *pev; -struct bpf_prog_priv *priv;struct bpf_insn *buf;size_t prologue_cnt =0 ;int i, err; - err =bpf_program__get_private (prog, (void **)&priv); -if (err || !priv) +if (IS_ERR (priv) || !priv) goto errout; pev = &priv->pev;
@@ -535,13 +534,12 @@ static int map_prologue(struct perf_probe_event *pev, int *mapping,static int hook_load_preprocessor (struct bpf_program *prog) { +struct bpf_prog_priv *priv =bpf_program__priv (prog);struct perf_probe_event *pev; -struct bpf_prog_priv *priv;bool need_prologue = false;int err, i; - err =bpf_program__get_private (prog, (void **)&priv); -if (err || !priv) { +if (IS_ERR (priv) || !priv) {pr_debug ("Internal error when hook preprocessor\n" );return -BPF_LOADER_ERRNO__INTERNAL ; }
@@ -607,9 +605,11 @@ int bpf__probe(struct bpf_object *obj)if (err) goto out; - err =bpf_program__get_private (prog, (void **)&priv); -if (err || !priv) + priv =bpf_program__priv (prog); +if (IS_ERR (priv) || !priv) { + err =PTR_ERR (priv); goto out; + } pev = &priv->pev; err =convert_perf_probe_events (pev,1 );
@@ -645,13 +645,12 @@ int bpf__unprobe(struct bpf_object *obj) {int err, ret =0 ;struct bpf_program *prog; -struct bpf_prog_priv *priv;bpf_object__for_each_program (prog, obj) { +struct bpf_prog_priv *priv =bpf_program__priv (prog);int i; - err =bpf_program__get_private (prog, (void **)&priv); -if (err || !priv) +if (IS_ERR (priv) || !priv)continue ;for (i =0 ; i < priv->pev.ntevs; i++) {
@@ -702,14 +701,12 @@ int bpf__foreach_tev(struct bpf_object *obj,int err;bpf_object__for_each_program (prog, obj) { +struct bpf_prog_priv *priv =bpf_program__priv (prog);struct probe_trace_event *tev;struct perf_probe_event *pev; -struct bpf_prog_priv *priv;int i, fd; - err =bpf_program__get_private (prog, - (void **)&priv); -if (err || !priv) { +if (IS_ERR (priv) || !priv) {pr_debug ("bpf: failed to get private field\n" );return -BPF_LOADER_ERRNO__INTERNAL ; }