bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next V2] bpf: Fix map_check_no_btf return code
@ 2020-05-27 11:33 Jesper Dangaard Brouer
  2020-05-27 22:59 ` Andrii Nakryiko
  0 siblings, 1 reply; 6+ messages in thread
From: Jesper Dangaard Brouer @ 2020-05-27 11:33 UTC (permalink / raw)
  To: bpf
  Cc: Jesper Dangaard Brouer, Daniel Borkmann, Alexei Starovoitov,
	Jakub Kicinski, Andrii Nakryiko

When a BPF-map type doesn't support having a BTF info associated, the
bpf_map_ops->map_check_btf is set to map_check_no_btf(). This function
map_check_no_btf() currently returns -ENOTSUPP, which result in a very
confusing error message in libbpf, see below.

The errno ENOTSUPP is part of the kernels internal errno in file
include/linux/errno.h. As is stated in the file, these "should never be
seen by user programs". This is not a not a standard Unix error.

This should likely have been EOPNOTSUPP instead. This seems to be a common
mistake, that even checkpatch tries to catch see commit 6b9ea5ff5abd
("checkpatch: warn about uses of ENOTSUPP").

Before this change end-users of libbpf will see:
 libbpf: Error in bpf_create_map_xattr(cpu_map):ERROR: strerror_r(-524)=22(-524). Retrying without BTF.

After this change end-users of libbpf will see:
 libbpf: Error in bpf_create_map_xattr(cpu_map):Operation not supported(-95). Retrying without BTF.

V2: Use EOPNOTSUPP instead of EUCLEAN.

Fixes: e8d2bec04579 ("bpf: decouple btf from seq bpf fs dump and enable more maps")
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.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 d13b804ff045..e4e0a0c5192c 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -732,7 +732,7 @@ int map_check_no_btf(const struct bpf_map *map,
 		     const struct btf_type *key_type,
 		     const struct btf_type *value_type)
 {
-	return -ENOTSUPP;
+	return -EOPNOTSUPP;
 }
 
 static int map_check_btf(struct bpf_map *map, const struct btf *btf,



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

end of thread, other threads:[~2020-05-28 19:41 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-27 11:33 [PATCH bpf-next V2] bpf: Fix map_check_no_btf return code Jesper Dangaard Brouer
2020-05-27 22:59 ` Andrii Nakryiko
2020-05-28  7:08   ` Jesper Dangaard Brouer
2020-05-28 18:21     ` Andrii Nakryiko
2020-05-28 18:38       ` Alexei Starovoitov
2020-05-28 19:41         ` 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).