Skip to content

Commit d3fddc3

Browse files
YuKuai-huaweiacmel
authored andcommitted
perf stat: Fix error return code in bperf__load()
Fix to return a negative error code from the error handling case instead of 0, as done elsewhere in this function. Committer notes: Added the missing {} for the now multiline 'if' block, fixing this error: CC /tmp/build/perf/util/bpf_counter.o util/bpf_counter.c: In function ‘bperf__load’: util/bpf_counter.c:523:9: error: this ‘if’ clause does not guard... [-Werror=misleading-indentation] 523 | if (evsel->bperf_leader_link_fd < 0 && | ^~ util/bpf_counter.c:526:17: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘if’ 526 | goto out; | ^~~~ cc1: all warnings being treated as errors Fixes: 7fac83a ("perf stat: Introduce 'bperf' to share hardware PMCs with BPF") Reported-by: Hulk Robot <hulkci@huawei.com> Signed-off-by: Yu Kuai <yukuai3@huawei.com> Cc: Alexei Starovoitov <ast@kernel.org> Cc: Andrii Nakryiko <andrii@kernel.org> Cc: Daniel Borkmann <daniel@iogearbox.net> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Song Liu <songliubraving@fb.com> Cc: Yu Kuai <yukuai3@huawei.com> Cc: Zhang Yi <yi.zhang@huawei.com> Link: http://lore.kernel.org/lkml/20210517081254.1561564-1-yukuai3@huawei.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
1 parent 4f2abe9 commit d3fddc3

1 file changed

Lines changed: 4 additions & 2 deletions

File tree

tools/perf/util/bpf_counter.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -521,9 +521,10 @@ static int bperf__load(struct evsel *evsel, struct target *target)
521521

522522
evsel->bperf_leader_link_fd = bpf_link_get_fd_by_id(entry.link_id);
523523
if (evsel->bperf_leader_link_fd < 0 &&
524-
bperf_reload_leader_program(evsel, attr_map_fd, &entry))
524+
bperf_reload_leader_program(evsel, attr_map_fd, &entry)) {
525+
err = -1;
525526
goto out;
526-
527+
}
527528
/*
528529
* The bpf_link holds reference to the leader program, and the
529530
* leader program holds reference to the maps. Therefore, if
@@ -550,6 +551,7 @@ static int bperf__load(struct evsel *evsel, struct target *target)
550551
/* Step 2: load the follower skeleton */
551552
evsel->follower_skel = bperf_follower_bpf__open();
552553
if (!evsel->follower_skel) {
554+
err = -1;
553555
pr_err("Failed to open follower skeleton\n");
554556
goto out;
555557
}

0 commit comments

Comments
 (0)