Commit 8acf3793 authored by Miaoqian Lin's avatar Miaoqian Lin Committed by Arnaldo Carvalho de Melo
Browse files

perf bpf-loader: Use IS_ERR_OR_NULL() to clean code and fix check



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: default avatarMiaoqian 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: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 7cc9680c
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -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,7 +642,10 @@ int bpf__probe(struct bpf_object *obj)
			goto out;

		priv = bpf_program__priv(prog);
		if (IS_ERR(priv) || !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;
		}