Re: [PATCH] lib/bpf/libbpf: Simplify the code by using PTR_ERR_OR_ZERO

From: Daniel Borkmann
Date: Tue Jul 31 2018 - 17:11:51 EST


On 07/31/2018 06:30 PM, zhong jiang wrote:
> Use PTR_ERR_OR_ZERO is better than the open code.
>
> Signed-off-by: zhong jiang <zhongjiang@xxxxxxxxxx>
> ---
> tools/lib/bpf/libbpf.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
> index 40211b5..9b61468 100644
> --- a/tools/lib/bpf/libbpf.c
> +++ b/tools/lib/bpf/libbpf.c
> @@ -2271,9 +2271,7 @@ struct bpf_map *
>
> long libbpf_get_error(const void *ptr)
> {
> - if (IS_ERR(ptr))
> - return PTR_ERR(ptr);
> - return 0;
> + return PTR_ERR_OR_ZERO(ptr);
> }
>
> int bpf_prog_load(const char *file, enum bpf_prog_type type,
>

Looks like you didn't even bother to try to compile your change ...

# make
Warning: Kernel ABI header at 'tools/include/uapi/linux/if_link.h' differs from latest version at 'include/uapi/linux/if_link.h'
CC libbpf.o
CC nlattr.o
CC btf.o
CC bpf.o
CC libbpf_errno.o
libbpf.c: In function âlibbpf_get_errorâ:
libbpf.c:2269:9: error: implicit declaration of function âPTR_ERR_OR_ZEROâ [-Werror=implicit-function-declaration]
return PTR_ERR_OR_ZERO(ptr);
^~~~~~~~~~~~~~~
libbpf.c:2269:2: error: nested extern declaration of âPTR_ERR_OR_ZEROâ [-Werror=nested-externs]
return PTR_ERR_OR_ZERO(ptr);
^~~~~~
cc1: all warnings being treated as errors