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

From: Jiri Olsa
Date: Thu Sep 06 2018 - 05:09:58 EST


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 <dingxiang@xxxxxxxxxxxxxxxxxxxx>
> ---
> 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