perf bpf-loader: Use IS_ERR_OR_NULL() to clean code and fix check
authorMiaoqian Lin <linmq006@gmail.com>
Sun, 12 Dec 2021 13:56:09 +0000 (13:56 +0000)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 16 Dec 2021 15:18:12 +0000 (12:18 -0300)
Use IS_ERR_OR_NULL() to make the code cleaner.
Also if the priv is NULL, it's improper to call PTR_ERR(priv).

Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Alexei Starovoitov <ast@kernel.org>
Cc: Andrii Nakryiko <andrii@kernel.org>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: John Fastabend <john.fastabend@gmail.com>
Cc: KP Singh <kpsingh@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Martin KaFai Lau <kafai@fb.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Song Liu <songliubraving@fb.com>
Cc: Yonghong Song <yhs@fb.com>
Cc: bpf@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: unlisted-recipients
Link: http://lore.kernel.org/lkml/20211212135613.20000-1-linmq006@gmail.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/bpf-loader.c

index fbb3c40..22662fc 100644 (file)
@@ -421,7 +421,7 @@ preproc_gen_prologue(struct bpf_program *prog, int n,
        size_t prologue_cnt = 0;
        int i, err;
 
-       if (IS_ERR(priv) || !priv || priv->is_tp)
+       if (IS_ERR_OR_NULL(priv) || priv->is_tp)
                goto errout;
 
        pev = &priv->pev;
@@ -570,7 +570,7 @@ static int hook_load_preprocessor(struct bpf_program *prog)
        bool need_prologue = false;
        int err, i;
 
-       if (IS_ERR(priv) || !priv) {
+       if (IS_ERR_OR_NULL(priv)) {
                pr_debug("Internal error when hook preprocessor\n");
                return -BPF_LOADER_ERRNO__INTERNAL;
        }
@@ -642,8 +642,11 @@ int bpf__probe(struct bpf_object *obj)
                        goto out;
 
                priv = bpf_program__priv(prog);
-               if (IS_ERR(priv) || !priv) {
-                       err = PTR_ERR(priv);
+               if (IS_ERR_OR_NULL(priv)) {
+                       if (!priv)
+                               err = -BPF_LOADER_ERRNO__INTERNAL;
+                       else
+                               err = PTR_ERR(priv);
                        goto out;
                }
 
@@ -693,7 +696,7 @@ int bpf__unprobe(struct bpf_object *obj)
                struct bpf_prog_priv *priv = bpf_program__priv(prog);
                int i;
 
-               if (IS_ERR(priv) || !priv || priv->is_tp)
+               if (IS_ERR_OR_NULL(priv) || priv->is_tp)
                        continue;
 
                for (i = 0; i < priv->pev.ntevs; i++) {
@@ -751,7 +754,7 @@ int bpf__foreach_event(struct bpf_object *obj,
                struct perf_probe_event *pev;
                int i, fd;
 
-               if (IS_ERR(priv) || !priv) {
+               if (IS_ERR_OR_NULL(priv)) {
                        pr_debug("bpf: failed to get private field\n");
                        return -BPF_LOADER_ERRNO__INTERNAL;
                }