Re: [PATCH bpf-next v5 7/9] libbpf: Find correct module BTFs for struct_ops maps and progs.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 10/18/23 19:43, Martin KaFai Lau wrote:
On 10/17/23 9:23 AM, thinker.li@xxxxxxxxx wrote:
-static int find_ksym_btf_id(struct bpf_object *obj, const char *ksym_name,
-                __u16 kind, struct btf **res_btf,
-                struct module_btf **res_mod_btf)
+static int find_module_btf_id(struct bpf_object *obj, const char *kern_name,
+                  __u16 kind, struct btf **res_btf,
+                  struct module_btf **res_mod_btf)
  {
      struct module_btf *mod_btf;
      struct btf *btf;
@@ -7710,7 +7728,7 @@ static int find_ksym_btf_id(struct bpf_object *obj, const char *ksym_name,
      btf = obj->btf_vmlinux;
      mod_btf = NULL;
-    id = btf__find_by_name_kind(btf, ksym_name, kind);
+    id = btf__find_by_name_kind(btf, kern_name, kind);
      if (id == -ENOENT) {
          err = load_module_btfs(obj);
@@ -7721,7 +7739,7 @@ static int find_ksym_btf_id(struct bpf_object *obj, const char *ksym_name,
              /* we assume module_btf's BTF FD is always >0 */
              mod_btf = &obj->btf_modules[i];
              btf = mod_btf->btf;
-            id = btf__find_by_name_kind_own(btf, ksym_name, kind);
+            id = btf__find_by_name_kind_own(btf, kern_name, kind);
              if (id != -ENOENT)
                  break;
          }
@@ -7744,7 +7762,7 @@ static int bpf_object__resolve_ksym_var_btf_id(struct bpf_object *obj,
      struct btf *btf = NULL;
      int id, err;
-    id = find_ksym_btf_id(obj, ext->name, BTF_KIND_VAR, &btf, &mod_btf);
+    id = find_module_btf_id(obj, ext->name, BTF_KIND_VAR, &btf, &mod_btf);
      if (id < 0) {
          if (id == -ESRCH && ext->is_weak)
              return 0;
@@ -7798,8 +7816,8 @@ static int bpf_object__resolve_ksym_func_btf_id(struct bpf_object *obj,
      local_func_proto_id = ext->ksym.type_id;
-    kfunc_id = find_ksym_btf_id(obj, ext->essent_name ?: ext->name, BTF_KIND_FUNC, &kern_btf,
-                    &mod_btf);
+    kfunc_id = find_module_btf_id(obj, ext->essent_name ?: ext->name, BTF_KIND_FUNC, &kern_btf,
+                      &mod_btf);
      if (kfunc_id < 0) {
          if (kfunc_id == -ESRCH && ext->is_weak)
              return 0;
@@ -9464,9 +9482,9 @@ static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd)
      return err;
  }
-static int find_kernel_btf_id(struct bpf_object *obj, const char *attach_name,
-                  enum bpf_attach_type attach_type,
-                  int *btf_obj_fd, int *btf_type_id)
+static int find_kernel_attach_btf_id(struct bpf_object *obj, const char *attach_name,
+                     enum bpf_attach_type attach_type,
+                     int *btf_obj_fd, int *btf_type_id)
  {
      int ret, i;
@@ -9531,7 +9549,9 @@ static int libbpf_find_attach_btf_id(struct bpf_program *prog, const char *attac
          *btf_obj_fd = 0;
          *btf_type_id = 1;
      } else {
-        err = find_kernel_btf_id(prog->obj, attach_name, attach_type, btf_obj_fd, btf_type_id);
+        err = find_kernel_attach_btf_id(prog->obj, attach_name,
+                        attach_type, btf_obj_fd,
+                        btf_type_id);
      }
      if (err) {
          pr_warn("prog '%s': failed to find kernel BTF type ID of '%s': %d\n", @@ -12945,9 +12965,9 @@ int bpf_program__set_attach_target(struct bpf_program *prog,
          err = bpf_object__load_vmlinux_btf(prog->obj, true);
          if (err)
              return libbpf_err(err);
-        err = find_kernel_btf_id(prog->obj, attach_func_name,
-                     prog->expected_attach_type,
-                     &btf_obj_fd, &btf_id);
+        err = find_kernel_attach_btf_id(prog->obj, attach_func_name,
+                        prog->expected_attach_type,
+                        &btf_obj_fd, &btf_id);

Please avoid mixing this level of name changes with the main changes. It is quite confusing for the reviewer and it is not mentioned in the commit message either.

Got it! Sorry confusing.





[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux