bpf.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH bpf-next 0/2 v2] libbpf: Deprecate bpf_{map,program}__{prev,next} APIs since v0.7
@ 2021-10-03 16:58 Hengqi Chen
  2021-10-03 16:58 ` [PATCH bpf-next 1/2 " Hengqi Chen
  2021-10-03 16:58 ` [PATCH bpf-next 2/2 v2] selftests/bpf: Switch to new bpf_object__next_{map,program} APIs Hengqi Chen
  0 siblings, 2 replies; 7+ messages in thread
From: Hengqi Chen @ 2021-10-03 16:58 UTC (permalink / raw)
  To: bpf; +Cc: ast, daniel, andrii, yhs, john.fastabend, hengqi.chen

bpf_{map,program}__{prev,next} don't follow the libbpf API naming
convention. Deprecate them and replace them with a new set of APIs
named bpf_object__{prev,next}_{program,map}.

v1->v2: [0]
  * Addressed Andrii's comments

  [0]: https://patchwork.kernel.org/project/netdevbpf/patch/20210906165456.325999-1-hengqi.chen@gmail.com/

Hengqi Chen (2):
  libbpf: Deprecate bpf_{map,program}__{prev,next} APIs since v0.7
  selftests/bpf: Switch to new bpf_object__next_{map,program} APIs

 tools/lib/bpf/libbpf.c                        | 24 +++++++++++++
 tools/lib/bpf/libbpf.h                        | 35 ++++++++++++-------
 tools/lib/bpf/libbpf.map                      |  4 +++
 tools/testing/selftests/bpf/prog_tests/btf.c  |  2 +-
 .../selftests/bpf/prog_tests/fexit_bpf2bpf.c  |  6 ++--
 .../bpf/prog_tests/select_reuseport.c         |  2 +-
 .../selftests/bpf/prog_tests/tcp_rtt.c        |  2 +-
 tools/testing/selftests/bpf/xdping.c          |  2 +-
 8 files changed, 58 insertions(+), 19 deletions(-)

--
2.25.1

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

* [PATCH bpf-next 1/2 v2] libbpf: Deprecate bpf_{map,program}__{prev,next} APIs since v0.7
  2021-10-03 16:58 [PATCH bpf-next 0/2 v2] libbpf: Deprecate bpf_{map,program}__{prev,next} APIs since v0.7 Hengqi Chen
@ 2021-10-03 16:58 ` Hengqi Chen
  2021-10-05 22:22   ` Song Liu
  2021-10-03 16:58 ` [PATCH bpf-next 2/2 v2] selftests/bpf: Switch to new bpf_object__next_{map,program} APIs Hengqi Chen
  1 sibling, 1 reply; 7+ messages in thread
From: Hengqi Chen @ 2021-10-03 16:58 UTC (permalink / raw)
  To: bpf; +Cc: ast, daniel, andrii, yhs, john.fastabend, hengqi.chen

Deprecate bpf_{map,program}__{prev,next} APIs. Replace them with
a new set of APIs named bpf_object__{prev,next}_{program,map} which
follow the libbpf API naming convention.[0] No functionality changes.

  Closes: https://github.com/libbpf/libbpf/issues/296

Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
---
 tools/lib/bpf/libbpf.c   | 24 ++++++++++++++++++++++++
 tools/lib/bpf/libbpf.h   | 35 +++++++++++++++++++++++------------
 tools/lib/bpf/libbpf.map |  4 ++++
 3 files changed, 51 insertions(+), 12 deletions(-)

diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index e23f1b6b9402..ecd5284c705d 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -7798,6 +7798,12 @@ __bpf_program__iter(const struct bpf_program *p, const struct bpf_object *obj,

 struct bpf_program *
 bpf_program__next(struct bpf_program *prev, const struct bpf_object *obj)
+{
+	return bpf_object__next_program(obj, prev);
+}
+
+struct bpf_program *
+bpf_object__next_program(const struct bpf_object *obj, struct bpf_program *prev)
 {
 	struct bpf_program *prog = prev;

@@ -7810,6 +7816,12 @@ bpf_program__next(struct bpf_program *prev, const struct bpf_object *obj)

 struct bpf_program *
 bpf_program__prev(struct bpf_program *next, const struct bpf_object *obj)
+{
+	return bpf_object__prev_program(obj, next);
+}
+
+struct bpf_program *
+bpf_object__prev_program(const struct bpf_object *obj, struct bpf_program *next)
 {
 	struct bpf_program *prog = next;

@@ -8742,6 +8754,12 @@ __bpf_map__iter(const struct bpf_map *m, const struct bpf_object *obj, int i)

 struct bpf_map *
 bpf_map__next(const struct bpf_map *prev, const struct bpf_object *obj)
+{
+	return bpf_object__next_map(obj, prev);
+}
+
+struct bpf_map *
+bpf_object__next_map(const struct bpf_object *obj, const struct bpf_map *prev)
 {
 	if (prev == NULL)
 		return obj->maps;
@@ -8751,6 +8769,12 @@ bpf_map__next(const struct bpf_map *prev, const struct bpf_object *obj)

 struct bpf_map *
 bpf_map__prev(const struct bpf_map *next, const struct bpf_object *obj)
+{
+	return bpf_object__prev_map(obj, next);
+}
+
+struct bpf_map *
+bpf_object__prev_map(const struct bpf_object *obj, const struct bpf_map *next)
 {
 	if (next == NULL) {
 		if (!obj->nr_maps)
diff --git a/tools/lib/bpf/libbpf.h b/tools/lib/bpf/libbpf.h
index e35490c54eb3..8f5144bfa321 100644
--- a/tools/lib/bpf/libbpf.h
+++ b/tools/lib/bpf/libbpf.h
@@ -189,16 +189,22 @@ LIBBPF_API int libbpf_find_vmlinux_btf_id(const char *name,

 /* Accessors of bpf_program */
 struct bpf_program;
-LIBBPF_API struct bpf_program *bpf_program__next(struct bpf_program *prog,
-						 const struct bpf_object *obj);
+LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__next_program() instead")
+struct bpf_program *bpf_program__next(struct bpf_program *prog,
+				      const struct bpf_object *obj);
+LIBBPF_API struct bpf_program *
+bpf_object__next_program(const struct bpf_object *obj, struct bpf_program *prog);

-#define bpf_object__for_each_program(pos, obj)		\
-	for ((pos) = bpf_program__next(NULL, (obj));	\
-	     (pos) != NULL;				\
-	     (pos) = bpf_program__next((pos), (obj)))
+#define bpf_object__for_each_program(pos, obj)			\
+	for ((pos) = bpf_object__next_program((obj), NULL);	\
+	     (pos) != NULL;					\
+	     (pos) = bpf_object__next_program((obj), (pos)))

-LIBBPF_API struct bpf_program *bpf_program__prev(struct bpf_program *prog,
-						 const struct bpf_object *obj);
+LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__prev_program() instead")
+struct bpf_program *bpf_program__prev(struct bpf_program *prog,
+				      const struct bpf_object *obj);
+LIBBPF_API struct bpf_program *
+bpf_object__prev_program(const struct bpf_object *obj, struct bpf_program *prog);

 typedef void (*bpf_program_clear_priv_t)(struct bpf_program *, void *);

@@ -502,16 +508,21 @@ bpf_object__find_map_fd_by_name(const struct bpf_object *obj, const char *name);
 LIBBPF_API struct bpf_map *
 bpf_object__find_map_by_offset(struct bpf_object *obj, size_t offset);

+LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__next_map() instead")
+struct bpf_map *bpf_map__next(const struct bpf_map *map, const struct bpf_object *obj);
 LIBBPF_API struct bpf_map *
-bpf_map__next(const struct bpf_map *map, const struct bpf_object *obj);
+bpf_object__next_map(const struct bpf_object *obj, const struct bpf_map *map);
+
 #define bpf_object__for_each_map(pos, obj)		\
-	for ((pos) = bpf_map__next(NULL, (obj));	\
+	for ((pos) = bpf_object__next_map((obj), NULL);	\
 	     (pos) != NULL;				\
-	     (pos) = bpf_map__next((pos), (obj)))
+	     (pos) = bpf_object__next_map((obj), (pos)))
 #define bpf_map__for_each bpf_object__for_each_map

+LIBBPF_API LIBBPF_DEPRECATED_SINCE(0, 7, "use bpf_object__prev_map() instead")
+struct bpf_map *bpf_map__prev(const struct bpf_map *map, const struct bpf_object *obj);
 LIBBPF_API struct bpf_map *
-bpf_map__prev(const struct bpf_map *map, const struct bpf_object *obj);
+bpf_object__prev_map(const struct bpf_object *obj, const struct bpf_map *map);

 /**
  * @brief **bpf_map__fd()** gets the file descriptor of the passed
diff --git a/tools/lib/bpf/libbpf.map b/tools/lib/bpf/libbpf.map
index 9e649cf9e771..b9f711ca475f 100644
--- a/tools/lib/bpf/libbpf.map
+++ b/tools/lib/bpf/libbpf.map
@@ -389,5 +389,9 @@ LIBBPF_0.5.0 {

 LIBBPF_0.6.0 {
 	global:
+		bpf_object__next_map;
+		bpf_object__next_program;
+		bpf_object__prev_map;
+		bpf_object__prev_program;
 		btf__add_tag;
 } LIBBPF_0.5.0;
--
2.25.1

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

* [PATCH bpf-next 2/2 v2] selftests/bpf: Switch to new bpf_object__next_{map,program} APIs
  2021-10-03 16:58 [PATCH bpf-next 0/2 v2] libbpf: Deprecate bpf_{map,program}__{prev,next} APIs since v0.7 Hengqi Chen
  2021-10-03 16:58 ` [PATCH bpf-next 1/2 " Hengqi Chen
@ 2021-10-03 16:58 ` Hengqi Chen
  2021-10-05 22:22   ` Song Liu
  1 sibling, 1 reply; 7+ messages in thread
From: Hengqi Chen @ 2021-10-03 16:58 UTC (permalink / raw)
  To: bpf; +Cc: ast, daniel, andrii, yhs, john.fastabend, hengqi.chen

Replace deprecated bpf_{map,program}__next APIs with newly added
bpf_object__next_{map,program} APIs, so that no compilation warnings
emit.

Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
---
 tools/testing/selftests/bpf/prog_tests/btf.c              | 2 +-
 tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c    | 6 +++---
 tools/testing/selftests/bpf/prog_tests/select_reuseport.c | 2 +-
 tools/testing/selftests/bpf/prog_tests/tcp_rtt.c          | 2 +-
 tools/testing/selftests/bpf/xdping.c                      | 2 +-
 5 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/tools/testing/selftests/bpf/prog_tests/btf.c b/tools/testing/selftests/bpf/prog_tests/btf.c
index 9c85d7d27409..acd33d0cd5d9 100644
--- a/tools/testing/selftests/bpf/prog_tests/btf.c
+++ b/tools/testing/selftests/bpf/prog_tests/btf.c
@@ -4511,7 +4511,7 @@ static void do_test_file(unsigned int test_num)
 	if (CHECK(err, "obj: %d", err))
 		return;

-	prog = bpf_program__next(NULL, obj);
+	prog = bpf_object__next_program(obj, NULL);
 	if (CHECK(!prog, "Cannot find bpf_prog")) {
 		err = -1;
 		goto done;
diff --git a/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c b/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
index c7c1816899bf..2839f4270a26 100644
--- a/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
+++ b/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
@@ -285,7 +285,7 @@ static void test_fmod_ret_freplace(void)
 	if (!ASSERT_OK_PTR(freplace_obj, "freplace_obj_open"))
 		goto out;

-	prog = bpf_program__next(NULL, freplace_obj);
+	prog = bpf_object__next_program(freplace_obj, NULL);
 	err = bpf_program__set_attach_target(prog, pkt_fd, NULL);
 	ASSERT_OK(err, "freplace__set_attach_target");

@@ -302,7 +302,7 @@ static void test_fmod_ret_freplace(void)
 		goto out;

 	attach_prog_fd = bpf_program__fd(prog);
-	prog = bpf_program__next(NULL, fmod_obj);
+	prog = bpf_object__next_program(fmod_obj, NULL);
 	err = bpf_program__set_attach_target(prog, attach_prog_fd, NULL);
 	ASSERT_OK(err, "fmod_ret_set_attach_target");

@@ -352,7 +352,7 @@ static void test_obj_load_failure_common(const char *obj_file,
 	if (!ASSERT_OK_PTR(obj, "obj_open"))
 		goto close_prog;

-	prog = bpf_program__next(NULL, obj);
+	prog = bpf_object__next_program(obj, NULL);
 	err = bpf_program__set_attach_target(prog, pkt_fd, NULL);
 	ASSERT_OK(err, "set_attach_target");

diff --git a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
index 4efd337d6a3c..d40e9156c48d 100644
--- a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
+++ b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
@@ -114,7 +114,7 @@ static int prepare_bpf_obj(void)
 	err = bpf_object__load(obj);
 	RET_ERR(err, "load bpf_object", "err:%d\n", err);

-	prog = bpf_program__next(NULL, obj);
+	prog = bpf_object__next_program(obj, NULL);
 	RET_ERR(!prog, "get first bpf_program", "!prog\n");
 	select_by_skb_data_prog = bpf_program__fd(prog);
 	RET_ERR(select_by_skb_data_prog < 0, "get prog fd",
diff --git a/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c b/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c
index d207e968e6b1..265b4fe33ec3 100644
--- a/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c
+++ b/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c
@@ -109,7 +109,7 @@ static int run_test(int cgroup_fd, int server_fd)
 		return -1;
 	}

-	map = bpf_map__next(NULL, obj);
+	map = bpf_object__next_map(obj, NULL);
 	map_fd = bpf_map__fd(map);

 	err = bpf_prog_attach(prog_fd, cgroup_fd, BPF_CGROUP_SOCK_OPS, 0);
diff --git a/tools/testing/selftests/bpf/xdping.c b/tools/testing/selftests/bpf/xdping.c
index 79a3453dab25..30f12637f4e4 100644
--- a/tools/testing/selftests/bpf/xdping.c
+++ b/tools/testing/selftests/bpf/xdping.c
@@ -187,7 +187,7 @@ int main(int argc, char **argv)
 		return 1;
 	}

-	map = bpf_map__next(NULL, obj);
+	map = bpf_object__next_map(obj, NULL);
 	if (map)
 		map_fd = bpf_map__fd(map);
 	if (!map || map_fd < 0) {
--
2.25.1

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

* Re: [PATCH bpf-next 1/2 v2] libbpf: Deprecate bpf_{map,program}__{prev,next} APIs since v0.7
  2021-10-03 16:58 ` [PATCH bpf-next 1/2 " Hengqi Chen
@ 2021-10-05 22:22   ` Song Liu
  2021-10-06 18:07     ` Andrii Nakryiko
  0 siblings, 1 reply; 7+ messages in thread
From: Song Liu @ 2021-10-05 22:22 UTC (permalink / raw)
  To: Hengqi Chen
  Cc: bpf, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Yonghong Song, John Fastabend

On Sun, Oct 3, 2021 at 10:00 AM Hengqi Chen <hengqi.chen@gmail.com> wrote:
>
> Deprecate bpf_{map,program}__{prev,next} APIs. Replace them with
> a new set of APIs named bpf_object__{prev,next}_{program,map} which
> follow the libbpf API naming convention.[0] No functionality changes.
>
>   Closes: https://github.com/libbpf/libbpf/issues/296
^^^ I guess we need "[0]" here?

>
> Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
> ---

Other than the nitpick above

Acked-by: Song Liu <songliubraving@fb.com>

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

* Re: [PATCH bpf-next 2/2 v2] selftests/bpf: Switch to new bpf_object__next_{map,program} APIs
  2021-10-03 16:58 ` [PATCH bpf-next 2/2 v2] selftests/bpf: Switch to new bpf_object__next_{map,program} APIs Hengqi Chen
@ 2021-10-05 22:22   ` Song Liu
  0 siblings, 0 replies; 7+ messages in thread
From: Song Liu @ 2021-10-05 22:22 UTC (permalink / raw)
  To: Hengqi Chen
  Cc: bpf, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Yonghong Song, John Fastabend

On Sun, Oct 3, 2021 at 10:00 AM Hengqi Chen <hengqi.chen@gmail.com> wrote:
>
> Replace deprecated bpf_{map,program}__next APIs with newly added
> bpf_object__next_{map,program} APIs, so that no compilation warnings
> emit.
>
> Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>

Acked-by: Song Liu <songliubraving@fb.com>

> ---
>  tools/testing/selftests/bpf/prog_tests/btf.c              | 2 +-
>  tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c    | 6 +++---
>  tools/testing/selftests/bpf/prog_tests/select_reuseport.c | 2 +-
>  tools/testing/selftests/bpf/prog_tests/tcp_rtt.c          | 2 +-
>  tools/testing/selftests/bpf/xdping.c                      | 2 +-
>  5 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/btf.c b/tools/testing/selftests/bpf/prog_tests/btf.c
> index 9c85d7d27409..acd33d0cd5d9 100644
> --- a/tools/testing/selftests/bpf/prog_tests/btf.c
> +++ b/tools/testing/selftests/bpf/prog_tests/btf.c
> @@ -4511,7 +4511,7 @@ static void do_test_file(unsigned int test_num)
>         if (CHECK(err, "obj: %d", err))
>                 return;
>
> -       prog = bpf_program__next(NULL, obj);
> +       prog = bpf_object__next_program(obj, NULL);
>         if (CHECK(!prog, "Cannot find bpf_prog")) {
>                 err = -1;
>                 goto done;
> diff --git a/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c b/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
> index c7c1816899bf..2839f4270a26 100644
> --- a/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
> +++ b/tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c
> @@ -285,7 +285,7 @@ static void test_fmod_ret_freplace(void)
>         if (!ASSERT_OK_PTR(freplace_obj, "freplace_obj_open"))
>                 goto out;
>
> -       prog = bpf_program__next(NULL, freplace_obj);
> +       prog = bpf_object__next_program(freplace_obj, NULL);
>         err = bpf_program__set_attach_target(prog, pkt_fd, NULL);
>         ASSERT_OK(err, "freplace__set_attach_target");
>
> @@ -302,7 +302,7 @@ static void test_fmod_ret_freplace(void)
>                 goto out;
>
>         attach_prog_fd = bpf_program__fd(prog);
> -       prog = bpf_program__next(NULL, fmod_obj);
> +       prog = bpf_object__next_program(fmod_obj, NULL);
>         err = bpf_program__set_attach_target(prog, attach_prog_fd, NULL);
>         ASSERT_OK(err, "fmod_ret_set_attach_target");
>
> @@ -352,7 +352,7 @@ static void test_obj_load_failure_common(const char *obj_file,
>         if (!ASSERT_OK_PTR(obj, "obj_open"))
>                 goto close_prog;
>
> -       prog = bpf_program__next(NULL, obj);
> +       prog = bpf_object__next_program(obj, NULL);
>         err = bpf_program__set_attach_target(prog, pkt_fd, NULL);
>         ASSERT_OK(err, "set_attach_target");
>
> diff --git a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
> index 4efd337d6a3c..d40e9156c48d 100644
> --- a/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
> +++ b/tools/testing/selftests/bpf/prog_tests/select_reuseport.c
> @@ -114,7 +114,7 @@ static int prepare_bpf_obj(void)
>         err = bpf_object__load(obj);
>         RET_ERR(err, "load bpf_object", "err:%d\n", err);
>
> -       prog = bpf_program__next(NULL, obj);
> +       prog = bpf_object__next_program(obj, NULL);
>         RET_ERR(!prog, "get first bpf_program", "!prog\n");
>         select_by_skb_data_prog = bpf_program__fd(prog);
>         RET_ERR(select_by_skb_data_prog < 0, "get prog fd",
> diff --git a/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c b/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c
> index d207e968e6b1..265b4fe33ec3 100644
> --- a/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c
> +++ b/tools/testing/selftests/bpf/prog_tests/tcp_rtt.c
> @@ -109,7 +109,7 @@ static int run_test(int cgroup_fd, int server_fd)
>                 return -1;
>         }
>
> -       map = bpf_map__next(NULL, obj);
> +       map = bpf_object__next_map(obj, NULL);
>         map_fd = bpf_map__fd(map);
>
>         err = bpf_prog_attach(prog_fd, cgroup_fd, BPF_CGROUP_SOCK_OPS, 0);
> diff --git a/tools/testing/selftests/bpf/xdping.c b/tools/testing/selftests/bpf/xdping.c
> index 79a3453dab25..30f12637f4e4 100644
> --- a/tools/testing/selftests/bpf/xdping.c
> +++ b/tools/testing/selftests/bpf/xdping.c
> @@ -187,7 +187,7 @@ int main(int argc, char **argv)
>                 return 1;
>         }
>
> -       map = bpf_map__next(NULL, obj);
> +       map = bpf_object__next_map(obj, NULL);
>         if (map)
>                 map_fd = bpf_map__fd(map);
>         if (!map || map_fd < 0) {
> --
> 2.25.1

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

* Re: [PATCH bpf-next 1/2 v2] libbpf: Deprecate bpf_{map,program}__{prev,next} APIs since v0.7
  2021-10-05 22:22   ` Song Liu
@ 2021-10-06 18:07     ` Andrii Nakryiko
  2021-10-07  4:01       ` Hengqi Chen
  0 siblings, 1 reply; 7+ messages in thread
From: Andrii Nakryiko @ 2021-10-06 18:07 UTC (permalink / raw)
  To: Song Liu
  Cc: Hengqi Chen, bpf, Alexei Starovoitov, Daniel Borkmann,
	Andrii Nakryiko, Yonghong Song, John Fastabend

On Tue, Oct 5, 2021 at 3:22 PM Song Liu <song@kernel.org> wrote:
>
> On Sun, Oct 3, 2021 at 10:00 AM Hengqi Chen <hengqi.chen@gmail.com> wrote:
> >
> > Deprecate bpf_{map,program}__{prev,next} APIs. Replace them with
> > a new set of APIs named bpf_object__{prev,next}_{program,map} which
> > follow the libbpf API naming convention.[0] No functionality changes.
> >
> >   Closes: https://github.com/libbpf/libbpf/issues/296
> ^^^ I guess we need "[0]" here?
>
> >
> > Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
> > ---
>
> Other than the nitpick above

Fixed that up while applying. There were also 4 more uses of
bpf_program__next and bpf_map__next in bpftool and samples/bpf, I've
fixed them up as well to not come back to this again. Hengqi, for
future deprecations, please do grep for the entire Linux source code,
not just selftests, there are a bunch of other tools and parts of the
kernel that use libbpf APIs.

Applied to bpf-next, thanks.

>
> Acked-by: Song Liu <songliubraving@fb.com>

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

* Re: [PATCH bpf-next 1/2 v2] libbpf: Deprecate bpf_{map,program}__{prev,next} APIs since v0.7
  2021-10-06 18:07     ` Andrii Nakryiko
@ 2021-10-07  4:01       ` Hengqi Chen
  0 siblings, 0 replies; 7+ messages in thread
From: Hengqi Chen @ 2021-10-07  4:01 UTC (permalink / raw)
  To: Andrii Nakryiko, Song Liu
  Cc: bpf, Alexei Starovoitov, Daniel Borkmann, Andrii Nakryiko,
	Yonghong Song, John Fastabend



On 10/7/21 2:07 AM, Andrii Nakryiko wrote:
> On Tue, Oct 5, 2021 at 3:22 PM Song Liu <song@kernel.org> wrote:
>>
>> On Sun, Oct 3, 2021 at 10:00 AM Hengqi Chen <hengqi.chen@gmail.com> wrote:
>>>
>>> Deprecate bpf_{map,program}__{prev,next} APIs. Replace them with
>>> a new set of APIs named bpf_object__{prev,next}_{program,map} which
>>> follow the libbpf API naming convention.[0] No functionality changes.
>>>
>>>   Closes: https://github.com/libbpf/libbpf/issues/296
>> ^^^ I guess we need "[0]" here?
>>
>>>
>>> Signed-off-by: Hengqi Chen <hengqi.chen@gmail.com>
>>> ---
>>
>> Other than the nitpick above
> 
> Fixed that up while applying. There were also 4 more uses of
> bpf_program__next and bpf_map__next in bpftool and samples/bpf, I've
> fixed them up as well to not come back to this again. Hengqi, for
> future deprecations, please do grep for the entire Linux source code,
> not just selftests, there are a bunch of other tools and parts of the
> kernel that use libbpf APIs.
> 

Thanks. Will keep this in mind. :)

> Applied to bpf-next, thanks.
> 
>>
>> Acked-by: Song Liu <songliubraving@fb.com>

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

end of thread, other threads:[~2021-10-07  4:01 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-03 16:58 [PATCH bpf-next 0/2 v2] libbpf: Deprecate bpf_{map,program}__{prev,next} APIs since v0.7 Hengqi Chen
2021-10-03 16:58 ` [PATCH bpf-next 1/2 " Hengqi Chen
2021-10-05 22:22   ` Song Liu
2021-10-06 18:07     ` Andrii Nakryiko
2021-10-07  4:01       ` Hengqi Chen
2021-10-03 16:58 ` [PATCH bpf-next 2/2 v2] selftests/bpf: Switch to new bpf_object__next_{map,program} APIs Hengqi Chen
2021-10-05 22:22   ` Song Liu

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).