2018-09-06 11:40:26

by Ding Xiang

[permalink] [raw]
Subject: [PATCH] perf tools: use PTR_ERR_OR_ZERO inetead of return code

use PTR_ERR_OR_ZERO for bpf__setup_stdout return code

Signed-off-by: Ding Xiang <[email protected]>
---
tools/perf/util/bpf-loader.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/perf/util/bpf-loader.c b/tools/perf/util/bpf-loader.c
index 47aac41..f9ae1a9 100644
--- a/tools/perf/util/bpf-loader.c
+++ b/tools/perf/util/bpf-loader.c
@@ -1615,7 +1615,7 @@ struct perf_evsel *bpf__setup_output_event(struct perf_evlist *evlist, const cha
int bpf__setup_stdout(struct perf_evlist *evlist)
{
struct perf_evsel *evsel = bpf__setup_output_event(evlist, "__bpf_stdout__");
- return IS_ERR(evsel) ? PTR_ERR(evsel) : 0;
+ return PTR_ERR_OR_ZERO(evsel);
}

#define ERRNO_OFFSET(e) ((e) - __BPF_LOADER_ERRNO__START)
--
1.9.1





2018-09-06 09:11:52

by Jiri Olsa

[permalink] [raw]
Subject: Re: [PATCH] perf tools: use PTR_ERR_OR_ZERO inetead of return code

On Thu, Sep 06, 2018 at 05:04:08PM +0800, Ding Xiang wrote:
> use PTR_ERR_OR_ZERO for bpf__setup_stdout return code
>
> Signed-off-by: Ding Xiang <[email protected]>
> ---
> tools/perf/util/bpf-loader.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/tools/perf/util/bpf-loader.c b/tools/perf/util/bpf-loader.c
> index 47aac41..f9ae1a9 100644
> --- a/tools/perf/util/bpf-loader.c
> +++ b/tools/perf/util/bpf-loader.c
> @@ -1615,7 +1615,7 @@ struct perf_evsel *bpf__setup_output_event(struct perf_evlist *evlist, const cha
> int bpf__setup_stdout(struct perf_evlist *evlist)
> {
> struct perf_evsel *evsel = bpf__setup_output_event(evlist, "__bpf_stdout__");
> - return IS_ERR(evsel) ? PTR_ERR(evsel) : 0;
> + return PTR_ERR_OR_ZERO(evsel);

you need to add that macro to tools/include/linux/err.h first...

[jolsa@krava perf]$ make JOBS=1
BUILD: Doing 'make -j1' parallel build
CC util/bpf-loader.o
util/bpf-loader.c: In function ‘bpf__setup_stdout’:
util/bpf-loader.c:1618:9: error: implicit declaration of function ‘PTR_ERR_OR_ZERO’; did you mean ‘IS_ERR_OR_NULL’? [-Werror=implicit-function-declaration]
return PTR_ERR_OR_ZERO(evsel);
^~~~~~~~~~~~~~~
IS_ERR_OR_NULL
util/bpf-loader.c:1618:9: error: nested extern declaration of ‘PTR_ERR_OR_ZERO’ [-Werror=nested-externs]
cc1: all warnings being treated as errors
mv: cannot stat 'util/.bpf-loader.o.tmp': No such file or directory

please at least compile the code before posting it ;-)

thanks,
jirka