bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next v3 0/2] Change return code if failed to load
@ 2020-04-26  6:36 Mao Wenan
  2020-04-26  6:36 ` [PATCH bpf-next v3 1/2] bpf: Change error code when ops is NULL Mao Wenan
  2020-04-26  6:36 ` [PATCH bpf-next v3 2/2] libbpf: Return err if bpf_object__load failed Mao Wenan
  0 siblings, 2 replies; 6+ messages in thread
From: Mao Wenan @ 2020-04-26  6:36 UTC (permalink / raw)
  To: ast, daniel, kafai, songliubraving, yhs, andriin, john.fastabend,
	kpsingh, andrii.nakryiko, dan.carpenter
  Cc: netdev, bpf, kernel-janitors

The first patch change return code from -EINVAL to -EOPNOTSUPP,
the second patch quote the err value returned by bpf_object__load().

v3: delete pr_warn for first patch.
v2: Adjust line breaks at 72 characters for commit log, and pr_warn
alignment as suggested by dan carpenter. For second patch, add
Acked-by tag as well.

Mao Wenan (2):
  bpf: Change error code when ops is NULL
  libbpf: Return err if bpf_object__load failed

 kernel/bpf/syscall.c   | 2 +-
 tools/lib/bpf/libbpf.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [PATCH bpf-next v3 1/2] bpf: Change error code when ops is NULL
  2020-04-26  6:36 [PATCH bpf-next v3 0/2] Change return code if failed to load Mao Wenan
@ 2020-04-26  6:36 ` Mao Wenan
  2020-04-27 21:37   ` Daniel Borkmann
  2020-04-26  6:36 ` [PATCH bpf-next v3 2/2] libbpf: Return err if bpf_object__load failed Mao Wenan
  1 sibling, 1 reply; 6+ messages in thread
From: Mao Wenan @ 2020-04-26  6:36 UTC (permalink / raw)
  To: ast, daniel, kafai, songliubraving, yhs, andriin, john.fastabend,
	kpsingh, andrii.nakryiko, dan.carpenter
  Cc: netdev, bpf, kernel-janitors

There is one error printed when use BPF_MAP_TYPE_SOCKMAP to create map:
libbpf: failed to create map (name: 'sock_map'): Invalid argument(-22)

This is because CONFIG_BPF_STREAM_PARSER is not set, and
bpf_map_types[type] return invalid ops. It is not clear to show the
cause of config missing with return code -EINVAL.

Signed-off-by: Mao Wenan <maowenan@huawei.com>
---
 kernel/bpf/syscall.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index d85f37239540..8ae78c98d91e 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -113,7 +113,7 @@ static struct bpf_map *find_and_alloc_map(union bpf_attr *attr)
 	type = array_index_nospec(type, ARRAY_SIZE(bpf_map_types));
 	ops = bpf_map_types[type];
 	if (!ops)
-		return ERR_PTR(-EINVAL);
+		return ERR_PTR(-EOPNOTSUPP);
 
 	if (ops->map_alloc_check) {
 		err = ops->map_alloc_check(attr);
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH bpf-next v3 2/2] libbpf: Return err if bpf_object__load failed
  2020-04-26  6:36 [PATCH bpf-next v3 0/2] Change return code if failed to load Mao Wenan
  2020-04-26  6:36 ` [PATCH bpf-next v3 1/2] bpf: Change error code when ops is NULL Mao Wenan
@ 2020-04-26  6:36 ` Mao Wenan
  2020-04-27 21:22   ` Daniel Borkmann
  1 sibling, 1 reply; 6+ messages in thread
From: Mao Wenan @ 2020-04-26  6:36 UTC (permalink / raw)
  To: ast, daniel, kafai, songliubraving, yhs, andriin, john.fastabend,
	kpsingh, andrii.nakryiko, dan.carpenter
  Cc: netdev, bpf, kernel-janitors

bpf_object__load() has various return code, when it failed to load
object, it must return err instead of -EINVAL.

Signed-off-by: Mao Wenan <maowenan@huawei.com>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Mao Wenan <maowenan@huawei.com>
---
 tools/lib/bpf/libbpf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index 8f480e29a6b0..8e1dc6980fac 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -7006,7 +7006,7 @@ int bpf_prog_load_xattr(const struct bpf_prog_load_attr *attr,
 	err = bpf_object__load(obj);
 	if (err) {
 		bpf_object__close(obj);
-		return -EINVAL;
+		return err;
 	}
 
 	*pobj = obj;
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH bpf-next v3 2/2] libbpf: Return err if bpf_object__load failed
  2020-04-26  6:36 ` [PATCH bpf-next v3 2/2] libbpf: Return err if bpf_object__load failed Mao Wenan
@ 2020-04-27 21:22   ` Daniel Borkmann
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Borkmann @ 2020-04-27 21:22 UTC (permalink / raw)
  To: Mao Wenan, ast, kafai, songliubraving, yhs, andriin,
	john.fastabend, kpsingh, andrii.nakryiko, dan.carpenter
  Cc: netdev, bpf, kernel-janitors

On 4/26/20 8:36 AM, Mao Wenan wrote:
> bpf_object__load() has various return code, when it failed to load
> object, it must return err instead of -EINVAL.
> 
> Signed-off-by: Mao Wenan <maowenan@huawei.com>
> Acked-by: Andrii Nakryiko <andriin@fb.com>

Applied, thanks!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH bpf-next v3 1/2] bpf: Change error code when ops is NULL
  2020-04-26  6:36 ` [PATCH bpf-next v3 1/2] bpf: Change error code when ops is NULL Mao Wenan
@ 2020-04-27 21:37   ` Daniel Borkmann
  2020-04-28  6:58     ` maowenan
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel Borkmann @ 2020-04-27 21:37 UTC (permalink / raw)
  To: Mao Wenan, ast, kafai, songliubraving, yhs, andriin,
	john.fastabend, kpsingh, andrii.nakryiko, dan.carpenter
  Cc: netdev, bpf, kernel-janitors

On 4/26/20 8:36 AM, Mao Wenan wrote:
> There is one error printed when use BPF_MAP_TYPE_SOCKMAP to create map:
> libbpf: failed to create map (name: 'sock_map'): Invalid argument(-22)
> 
> This is because CONFIG_BPF_STREAM_PARSER is not set, and
> bpf_map_types[type] return invalid ops. It is not clear to show the
> cause of config missing with return code -EINVAL.
> 
> Signed-off-by: Mao Wenan <maowenan@huawei.com>
> ---
>   kernel/bpf/syscall.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
> index d85f37239540..8ae78c98d91e 100644
> --- a/kernel/bpf/syscall.c
> +++ b/kernel/bpf/syscall.c
> @@ -113,7 +113,7 @@ static struct bpf_map *find_and_alloc_map(union bpf_attr *attr)
>   	type = array_index_nospec(type, ARRAY_SIZE(bpf_map_types));
>   	ops = bpf_map_types[type];
>   	if (!ops)
> -		return ERR_PTR(-EINVAL);
> +		return ERR_PTR(-EOPNOTSUPP);
>   
>   	if (ops->map_alloc_check) {
>   		err = ops->map_alloc_check(attr);
> 

Unless I'm missing the use-case, why not using bpftool's feature probe to check for
availability (alternatively via 'feature probe kernel macros' if you need this into
inside the BPF prog for ifdef etc)?

   bpftool feature probe kernel | grep sockmap
   eBPF map_type sockmap is NOT available

Thanks,
Daniel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH bpf-next v3 1/2] bpf: Change error code when ops is NULL
  2020-04-27 21:37   ` Daniel Borkmann
@ 2020-04-28  6:58     ` maowenan
  0 siblings, 0 replies; 6+ messages in thread
From: maowenan @ 2020-04-28  6:58 UTC (permalink / raw)
  To: Daniel Borkmann, ast, kafai, songliubraving, yhs, andriin,
	john.fastabend, kpsingh, andrii.nakryiko, dan.carpenter
  Cc: netdev, bpf, kernel-janitors

On 2020/4/28 5:37, Daniel Borkmann wrote:
> bpftool feature probe kernel | grep sockmap
ok, thanks.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-04-28  6:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-26  6:36 [PATCH bpf-next v3 0/2] Change return code if failed to load Mao Wenan
2020-04-26  6:36 ` [PATCH bpf-next v3 1/2] bpf: Change error code when ops is NULL Mao Wenan
2020-04-27 21:37   ` Daniel Borkmann
2020-04-28  6:58     ` maowenan
2020-04-26  6:36 ` [PATCH bpf-next v3 2/2] libbpf: Return err if bpf_object__load failed Mao Wenan
2020-04-27 21:22   ` Daniel Borkmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).