]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop libbpf patch for real
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 May 2025 15:53:19 +0000 (17:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 27 May 2025 15:53:19 +0000 (17:53 +0200)
queue-6.12/libbpf-pass-bpf-token-from-find_prog_btf_id-to-bpf_b.patch [deleted file]
queue-6.12/series
queue-6.14/libbpf-pass-bpf-token-from-find_prog_btf_id-to-bpf_b.patch [deleted file]
queue-6.14/series

diff --git a/queue-6.12/libbpf-pass-bpf-token-from-find_prog_btf_id-to-bpf_b.patch b/queue-6.12/libbpf-pass-bpf-token-from-find_prog_btf_id-to-bpf_b.patch
deleted file mode 100644 (file)
index ab86ecb..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-From da78c30fd182b84458551ef74f482bcd478a17b4 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 17 Mar 2025 17:40:38 +0000
-Subject: libbpf: Pass BPF token from find_prog_btf_id to BPF_BTF_GET_FD_BY_ID
-
-From: Mykyta Yatsenko <yatsenko@meta.com>
-
-[ Upstream commit 974ef9f0d23edc1a802691c585b84514b414a96d ]
-
-Pass BPF token from bpf_program__set_attach_target to
-BPF_BTF_GET_FD_BY_ID bpf command.
-When freplace program attaches to target program, it needs to look up
-for BTF of the target, this may require BPF token, if, for example,
-running from user namespace.
-
-Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
-Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
-Acked-by: Yonghong Song <yonghong.song@linux.dev>
-Link: https://lore.kernel.org/bpf/20250317174039.161275-4-mykyta.yatsenko5@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/lib/bpf/bpf.c             |  3 ++-
- tools/lib/bpf/bpf.h             |  3 ++-
- tools/lib/bpf/btf.c             | 15 +++++++++++++--
- tools/lib/bpf/libbpf.c          | 10 +++++-----
- tools/lib/bpf/libbpf_internal.h |  1 +
- 5 files changed, 23 insertions(+), 9 deletions(-)
-
-diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
-index 2a4c71501a17d..72470acce67b7 100644
---- a/tools/lib/bpf/bpf.c
-+++ b/tools/lib/bpf/bpf.c
-@@ -1095,7 +1095,7 @@ int bpf_map_get_fd_by_id(__u32 id)
- int bpf_btf_get_fd_by_id_opts(__u32 id,
-                             const struct bpf_get_fd_by_id_opts *opts)
- {
--      const size_t attr_sz = offsetofend(union bpf_attr, open_flags);
-+      const size_t attr_sz = offsetofend(union bpf_attr, fd_by_id_token_fd);
-       union bpf_attr attr;
-       int fd;
-@@ -1105,6 +1105,7 @@ int bpf_btf_get_fd_by_id_opts(__u32 id,
-       memset(&attr, 0, attr_sz);
-       attr.btf_id = id;
-       attr.open_flags = OPTS_GET(opts, open_flags, 0);
-+      attr.fd_by_id_token_fd = OPTS_GET(opts, token_fd, 0);
-       fd = sys_bpf_fd(BPF_BTF_GET_FD_BY_ID, &attr, attr_sz);
-       return libbpf_err_errno(fd);
-diff --git a/tools/lib/bpf/bpf.h b/tools/lib/bpf/bpf.h
-index a4a7b1ad1b631..b93d00968cba1 100644
---- a/tools/lib/bpf/bpf.h
-+++ b/tools/lib/bpf/bpf.h
-@@ -484,9 +484,10 @@ LIBBPF_API int bpf_link_get_next_id(__u32 start_id, __u32 *next_id);
- struct bpf_get_fd_by_id_opts {
-       size_t sz; /* size of this struct for forward/backward compatibility */
-       __u32 open_flags; /* permissions requested for the operation on fd */
-+      __u32 token_fd;
-       size_t :0;
- };
--#define bpf_get_fd_by_id_opts__last_field open_flags
-+#define bpf_get_fd_by_id_opts__last_field token_fd
- LIBBPF_API int bpf_prog_get_fd_by_id(__u32 id);
- LIBBPF_API int bpf_prog_get_fd_by_id_opts(__u32 id,
-diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
-index 27e7bfae953bd..3a7e0ba9f5923 100644
---- a/tools/lib/bpf/btf.c
-+++ b/tools/lib/bpf/btf.c
-@@ -1618,12 +1618,18 @@ struct btf *btf_get_from_fd(int btf_fd, struct btf *base_btf)
-       return btf;
- }
--struct btf *btf__load_from_kernel_by_id_split(__u32 id, struct btf *base_btf)
-+struct btf *btf_load_from_kernel(__u32 id, struct btf *base_btf, int token_fd)
- {
-       struct btf *btf;
-       int btf_fd;
-+      LIBBPF_OPTS(bpf_get_fd_by_id_opts, opts);
-+
-+      if (token_fd) {
-+              opts.open_flags |= BPF_F_TOKEN_FD;
-+              opts.token_fd = token_fd;
-+      }
--      btf_fd = bpf_btf_get_fd_by_id(id);
-+      btf_fd = bpf_btf_get_fd_by_id_opts(id, &opts);
-       if (btf_fd < 0)
-               return libbpf_err_ptr(-errno);
-@@ -1633,6 +1639,11 @@ struct btf *btf__load_from_kernel_by_id_split(__u32 id, struct btf *base_btf)
-       return libbpf_ptr(btf);
- }
-+struct btf *btf__load_from_kernel_by_id_split(__u32 id, struct btf *base_btf)
-+{
-+      return btf_load_from_kernel(id, base_btf, 0);
-+}
-+
- struct btf *btf__load_from_kernel_by_id(__u32 id)
- {
-       return btf__load_from_kernel_by_id_split(id, NULL);
-diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
-index 5ff643e60d09c..5b45f76059296 100644
---- a/tools/lib/bpf/libbpf.c
-+++ b/tools/lib/bpf/libbpf.c
-@@ -9936,7 +9936,7 @@ int libbpf_find_vmlinux_btf_id(const char *name,
-       return libbpf_err(err);
- }
--static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd)
-+static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd, int token_fd)
- {
-       struct bpf_prog_info info;
-       __u32 info_len = sizeof(info);
-@@ -9956,7 +9956,7 @@ static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd)
-               pr_warn("The target program doesn't have BTF\n");
-               goto out;
-       }
--      btf = btf__load_from_kernel_by_id(info.btf_id);
-+      btf = btf_load_from_kernel(info.btf_id, NULL, token_fd);
-       err = libbpf_get_error(btf);
-       if (err) {
-               pr_warn("Failed to get BTF %d of the program: %d\n", info.btf_id, err);
-@@ -10039,7 +10039,7 @@ static int libbpf_find_attach_btf_id(struct bpf_program *prog, const char *attac
-                       pr_warn("prog '%s': attach program FD is not set\n", prog->name);
-                       return -EINVAL;
-               }
--              err = libbpf_find_prog_btf_id(attach_name, attach_prog_fd);
-+              err = libbpf_find_prog_btf_id(attach_name, attach_prog_fd, prog->obj->token_fd);
-               if (err < 0) {
-                       pr_warn("prog '%s': failed to find BPF program (FD %d) BTF ID for '%s': %d\n",
-                                prog->name, attach_prog_fd, attach_name, err);
-@@ -12804,7 +12804,7 @@ struct bpf_link *bpf_program__attach_freplace(const struct bpf_program *prog,
-       if (target_fd) {
-               LIBBPF_OPTS(bpf_link_create_opts, target_opts);
--              btf_id = libbpf_find_prog_btf_id(attach_func_name, target_fd);
-+              btf_id = libbpf_find_prog_btf_id(attach_func_name, target_fd, prog->obj->token_fd);
-               if (btf_id < 0)
-                       return libbpf_err_ptr(btf_id);
-@@ -13629,7 +13629,7 @@ int bpf_program__set_attach_target(struct bpf_program *prog,
-       if (attach_prog_fd) {
-               btf_id = libbpf_find_prog_btf_id(attach_func_name,
--                                               attach_prog_fd);
-+                                               attach_prog_fd, prog->obj->token_fd);
-               if (btf_id < 0)
-                       return libbpf_err(btf_id);
-       } else {
-diff --git a/tools/lib/bpf/libbpf_internal.h b/tools/lib/bpf/libbpf_internal.h
-index 408df59e07719..bd7adb8594d40 100644
---- a/tools/lib/bpf/libbpf_internal.h
-+++ b/tools/lib/bpf/libbpf_internal.h
-@@ -408,6 +408,7 @@ int libbpf__load_raw_btf(const char *raw_types, size_t types_len,
- int btf_load_into_kernel(struct btf *btf,
-                        char *log_buf, size_t log_sz, __u32 log_level,
-                        int token_fd);
-+struct btf *btf_load_from_kernel(__u32 id, struct btf *base_btf, int token_fd);
- struct btf *btf_get_from_fd(int btf_fd, struct btf *base_btf);
- void btf_get_kernel_prefix_kind(enum bpf_attach_type attach_type,
--- 
-2.39.5
-
index eb08b83302f91c6e5fe00b33464ea3cef0b8dbda..b63ae5147e73ed2f38f0ed0e5381ea50ced1cc91 100644 (file)
@@ -135,7 +135,6 @@ hypfs_create_cpu_files-add-missing-check-for-hypfs_m.patch
 scsi-st-tighten-the-page-format-heuristics-with-mode.patch
 scsi-st-erase-does-not-change-tape-location.patch
 vfio-pci-handle-intx-irq_notconnected.patch
-libbpf-pass-bpf-token-from-find_prog_btf_id-to-bpf_b.patch
 bpf-return-prog-btf_id-without-capable-check.patch
 pci-dwc-use-resource-start-as-ioremap-input-in-dw_pc.patch
 jbd2-do-not-try-to-recover-wiped-journal.patch
diff --git a/queue-6.14/libbpf-pass-bpf-token-from-find_prog_btf_id-to-bpf_b.patch b/queue-6.14/libbpf-pass-bpf-token-from-find_prog_btf_id-to-bpf_b.patch
deleted file mode 100644 (file)
index 59485a4..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-From 7a8beec7026564efe57ebf9c4c568ed0071f2e39 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Mon, 17 Mar 2025 17:40:38 +0000
-Subject: libbpf: Pass BPF token from find_prog_btf_id to BPF_BTF_GET_FD_BY_ID
-
-From: Mykyta Yatsenko <yatsenko@meta.com>
-
-[ Upstream commit 974ef9f0d23edc1a802691c585b84514b414a96d ]
-
-Pass BPF token from bpf_program__set_attach_target to
-BPF_BTF_GET_FD_BY_ID bpf command.
-When freplace program attaches to target program, it needs to look up
-for BTF of the target, this may require BPF token, if, for example,
-running from user namespace.
-
-Signed-off-by: Mykyta Yatsenko <yatsenko@meta.com>
-Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
-Acked-by: Yonghong Song <yonghong.song@linux.dev>
-Link: https://lore.kernel.org/bpf/20250317174039.161275-4-mykyta.yatsenko5@gmail.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- tools/lib/bpf/bpf.c             |  3 ++-
- tools/lib/bpf/bpf.h             |  3 ++-
- tools/lib/bpf/btf.c             | 15 +++++++++++++--
- tools/lib/bpf/libbpf.c          | 10 +++++-----
- tools/lib/bpf/libbpf_internal.h |  1 +
- 5 files changed, 23 insertions(+), 9 deletions(-)
-
-diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
-index 359f73ead6137..a9c3e33d0f8a9 100644
---- a/tools/lib/bpf/bpf.c
-+++ b/tools/lib/bpf/bpf.c
-@@ -1097,7 +1097,7 @@ int bpf_map_get_fd_by_id(__u32 id)
- int bpf_btf_get_fd_by_id_opts(__u32 id,
-                             const struct bpf_get_fd_by_id_opts *opts)
- {
--      const size_t attr_sz = offsetofend(union bpf_attr, open_flags);
-+      const size_t attr_sz = offsetofend(union bpf_attr, fd_by_id_token_fd);
-       union bpf_attr attr;
-       int fd;
-@@ -1107,6 +1107,7 @@ int bpf_btf_get_fd_by_id_opts(__u32 id,
-       memset(&attr, 0, attr_sz);
-       attr.btf_id = id;
-       attr.open_flags = OPTS_GET(opts, open_flags, 0);
-+      attr.fd_by_id_token_fd = OPTS_GET(opts, token_fd, 0);
-       fd = sys_bpf_fd(BPF_BTF_GET_FD_BY_ID, &attr, attr_sz);
-       return libbpf_err_errno(fd);
-diff --git a/tools/lib/bpf/bpf.h b/tools/lib/bpf/bpf.h
-index 435da95d20589..777627d33d257 100644
---- a/tools/lib/bpf/bpf.h
-+++ b/tools/lib/bpf/bpf.h
-@@ -487,9 +487,10 @@ LIBBPF_API int bpf_link_get_next_id(__u32 start_id, __u32 *next_id);
- struct bpf_get_fd_by_id_opts {
-       size_t sz; /* size of this struct for forward/backward compatibility */
-       __u32 open_flags; /* permissions requested for the operation on fd */
-+      __u32 token_fd;
-       size_t :0;
- };
--#define bpf_get_fd_by_id_opts__last_field open_flags
-+#define bpf_get_fd_by_id_opts__last_field token_fd
- LIBBPF_API int bpf_prog_get_fd_by_id(__u32 id);
- LIBBPF_API int bpf_prog_get_fd_by_id_opts(__u32 id,
-diff --git a/tools/lib/bpf/btf.c b/tools/lib/bpf/btf.c
-index 560b519f820e2..03cc7c46c16b5 100644
---- a/tools/lib/bpf/btf.c
-+++ b/tools/lib/bpf/btf.c
-@@ -1619,12 +1619,18 @@ struct btf *btf_get_from_fd(int btf_fd, struct btf *base_btf)
-       return btf;
- }
--struct btf *btf__load_from_kernel_by_id_split(__u32 id, struct btf *base_btf)
-+struct btf *btf_load_from_kernel(__u32 id, struct btf *base_btf, int token_fd)
- {
-       struct btf *btf;
-       int btf_fd;
-+      LIBBPF_OPTS(bpf_get_fd_by_id_opts, opts);
-+
-+      if (token_fd) {
-+              opts.open_flags |= BPF_F_TOKEN_FD;
-+              opts.token_fd = token_fd;
-+      }
--      btf_fd = bpf_btf_get_fd_by_id(id);
-+      btf_fd = bpf_btf_get_fd_by_id_opts(id, &opts);
-       if (btf_fd < 0)
-               return libbpf_err_ptr(-errno);
-@@ -1634,6 +1640,11 @@ struct btf *btf__load_from_kernel_by_id_split(__u32 id, struct btf *base_btf)
-       return libbpf_ptr(btf);
- }
-+struct btf *btf__load_from_kernel_by_id_split(__u32 id, struct btf *base_btf)
-+{
-+      return btf_load_from_kernel(id, base_btf, 0);
-+}
-+
- struct btf *btf__load_from_kernel_by_id(__u32 id)
- {
-       return btf__load_from_kernel_by_id_split(id, NULL);
-diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
-index 194809da51725..6b436ec872b0f 100644
---- a/tools/lib/bpf/libbpf.c
-+++ b/tools/lib/bpf/libbpf.c
-@@ -9959,7 +9959,7 @@ int libbpf_find_vmlinux_btf_id(const char *name,
-       return libbpf_err(err);
- }
--static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd)
-+static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd, int token_fd)
- {
-       struct bpf_prog_info info;
-       __u32 info_len = sizeof(info);
-@@ -9979,7 +9979,7 @@ static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd)
-               pr_warn("The target program doesn't have BTF\n");
-               goto out;
-       }
--      btf = btf__load_from_kernel_by_id(info.btf_id);
-+      btf = btf_load_from_kernel(info.btf_id, NULL, token_fd);
-       err = libbpf_get_error(btf);
-       if (err) {
-               pr_warn("Failed to get BTF %d of the program: %s\n", info.btf_id, errstr(err));
-@@ -10062,7 +10062,7 @@ static int libbpf_find_attach_btf_id(struct bpf_program *prog, const char *attac
-                       pr_warn("prog '%s': attach program FD is not set\n", prog->name);
-                       return -EINVAL;
-               }
--              err = libbpf_find_prog_btf_id(attach_name, attach_prog_fd);
-+              err = libbpf_find_prog_btf_id(attach_name, attach_prog_fd, prog->obj->token_fd);
-               if (err < 0) {
-                       pr_warn("prog '%s': failed to find BPF program (FD %d) BTF ID for '%s': %s\n",
-                               prog->name, attach_prog_fd, attach_name, errstr(err));
-@@ -12858,7 +12858,7 @@ struct bpf_link *bpf_program__attach_freplace(const struct bpf_program *prog,
-       if (target_fd) {
-               LIBBPF_OPTS(bpf_link_create_opts, target_opts);
--              btf_id = libbpf_find_prog_btf_id(attach_func_name, target_fd);
-+              btf_id = libbpf_find_prog_btf_id(attach_func_name, target_fd, prog->obj->token_fd);
-               if (btf_id < 0)
-                       return libbpf_err_ptr(btf_id);
-@@ -13679,7 +13679,7 @@ int bpf_program__set_attach_target(struct bpf_program *prog,
-       if (attach_prog_fd) {
-               btf_id = libbpf_find_prog_btf_id(attach_func_name,
--                                               attach_prog_fd);
-+                                               attach_prog_fd, prog->obj->token_fd);
-               if (btf_id < 0)
-                       return libbpf_err(btf_id);
-       } else {
-diff --git a/tools/lib/bpf/libbpf_internal.h b/tools/lib/bpf/libbpf_internal.h
-index de498e2dd6b0b..76669c73dcd16 100644
---- a/tools/lib/bpf/libbpf_internal.h
-+++ b/tools/lib/bpf/libbpf_internal.h
-@@ -409,6 +409,7 @@ int libbpf__load_raw_btf(const char *raw_types, size_t types_len,
- int btf_load_into_kernel(struct btf *btf,
-                        char *log_buf, size_t log_sz, __u32 log_level,
-                        int token_fd);
-+struct btf *btf_load_from_kernel(__u32 id, struct btf *base_btf, int token_fd);
- struct btf *btf_get_from_fd(int btf_fd, struct btf *base_btf);
- void btf_get_kernel_prefix_kind(enum bpf_attach_type attach_type,
--- 
-2.39.5
-
index ed994c003f6b76f15061e17eba06bd67fcd82bec..b95c4b642c31da6fafda7e52cff719ac6a0ac6af 100644 (file)
@@ -160,7 +160,6 @@ scsi-st-tighten-the-page-format-heuristics-with-mode.patch
 scsi-st-erase-does-not-change-tape-location.patch
 vfio-pci-handle-intx-irq_notconnected.patch
 bpftool-using-the-right-format-specifiers.patch
-libbpf-pass-bpf-token-from-find_prog_btf_id-to-bpf_b.patch
 bpf-return-prog-btf_id-without-capable-check.patch
 pci-dwc-use-resource-start-as-ioremap-input-in-dw_pc.patch
 jbd2-do-not-try-to-recover-wiped-journal.patch