bpf_address_lookup() has been used only in kallsyms_lookup_buildid().
It was supposed to set @modname and @modbuildid when the symbol was
in a module.

But it always just cleared @modname because BPF symbols were never in
a module. And it did not clear @modbuildid because the pointer was
not passed.

The wrapper is no longer needed. Both @modname and @modbuildid
are now always initialized to NULL in kallsyms_lookup_buildid().

Remove the wrapper and rename __bpf_address_lookup() to
bpf_address_lookup() because this variant is used everywhere.

Fixes: 9294523e3768 ("module: add printk formats to add module build ID to 
stacktraces")
Acked-by: Alexei Starovoitov <[email protected]>
Signed-off-by: Petr Mladek <[email protected]>
---
 arch/arm64/net/bpf_jit_comp.c   |  2 +-
 arch/powerpc/net/bpf_jit_comp.c |  2 +-
 include/linux/filter.h          | 26 ++++----------------------
 kernel/bpf/core.c               |  4 ++--
 kernel/kallsyms.c               |  5 ++---
 5 files changed, 10 insertions(+), 29 deletions(-)

diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c
index 0c9a50a1e73e..17e6a041ea4d 100644
--- a/arch/arm64/net/bpf_jit_comp.c
+++ b/arch/arm64/net/bpf_jit_comp.c
@@ -2939,7 +2939,7 @@ int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type 
poke_type,
        u64 plt_target = 0ULL;
        bool poking_bpf_entry;
 
-       if (!__bpf_address_lookup((unsigned long)ip, &size, &offset, namebuf))
+       if (!bpf_address_lookup((unsigned long)ip, &size, &offset, namebuf))
                /* Only poking bpf text is supported. Since kernel function
                 * entry is set up by ftrace, we reply on ftrace to poke kernel
                 * functions.
diff --git a/arch/powerpc/net/bpf_jit_comp.c b/arch/powerpc/net/bpf_jit_comp.c
index 88ad5ba7b87f..21f7f26a5e2f 100644
--- a/arch/powerpc/net/bpf_jit_comp.c
+++ b/arch/powerpc/net/bpf_jit_comp.c
@@ -1122,7 +1122,7 @@ int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type 
poke_type,
        branch_flags = poke_type == BPF_MOD_CALL ? BRANCH_SET_LINK : 0;
 
        /* We currently only support poking bpf programs */
-       if (!__bpf_address_lookup(bpf_func, &size, &offset, name)) {
+       if (!bpf_address_lookup(bpf_func, &size, &offset, name)) {
                pr_err("%s (0x%lx): kernel/modules are not supported\n", 
__func__, bpf_func);
                return -EOPNOTSUPP;
        }
diff --git a/include/linux/filter.h b/include/linux/filter.h
index 973233b82dc1..0189f7488044 100644
--- a/include/linux/filter.h
+++ b/include/linux/filter.h
@@ -1373,24 +1373,13 @@ static inline bool bpf_jit_kallsyms_enabled(void)
        return false;
 }
 
-int __bpf_address_lookup(unsigned long addr, unsigned long *size,
-                                unsigned long *off, char *sym);
+int bpf_address_lookup(unsigned long addr, unsigned long *size,
+                      unsigned long *off, char *sym);
 bool is_bpf_text_address(unsigned long addr);
 int bpf_get_kallsym(unsigned int symnum, unsigned long *value, char *type,
                    char *sym);
 struct bpf_prog *bpf_prog_ksym_find(unsigned long addr);
 
-static inline int
-bpf_address_lookup(unsigned long addr, unsigned long *size,
-                  unsigned long *off, char **modname, char *sym)
-{
-       int ret = __bpf_address_lookup(addr, size, off, sym);
-
-       if (ret && modname)
-               *modname = NULL;
-       return ret;
-}
-
 void bpf_prog_kallsyms_add(struct bpf_prog *fp);
 void bpf_prog_kallsyms_del(struct bpf_prog *fp);
 
@@ -1429,8 +1418,8 @@ static inline bool bpf_jit_kallsyms_enabled(void)
 }
 
 static inline int
-__bpf_address_lookup(unsigned long addr, unsigned long *size,
-                    unsigned long *off, char *sym)
+bpf_address_lookup(unsigned long addr, unsigned long *size,
+                  unsigned long *off, char *sym)
 {
        return 0;
 }
@@ -1451,13 +1440,6 @@ static inline struct bpf_prog 
*bpf_prog_ksym_find(unsigned long addr)
        return NULL;
 }
 
-static inline int
-bpf_address_lookup(unsigned long addr, unsigned long *size,
-                  unsigned long *off, char **modname, char *sym)
-{
-       return 0;
-}
-
 static inline void bpf_prog_kallsyms_add(struct bpf_prog *fp)
 {
 }
diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
index d595fe512498..c2278f392e93 100644
--- a/kernel/bpf/core.c
+++ b/kernel/bpf/core.c
@@ -713,8 +713,8 @@ static struct bpf_ksym *bpf_ksym_find(unsigned long addr)
        return n ? container_of(n, struct bpf_ksym, tnode) : NULL;
 }
 
-int __bpf_address_lookup(unsigned long addr, unsigned long *size,
-                                unsigned long *off, char *sym)
+int bpf_address_lookup(unsigned long addr, unsigned long *size,
+                      unsigned long *off, char *sym)
 {
        struct bpf_ksym *ksym;
        int ret = 0;
diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
index f25b122397ce..97b92fc8871d 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -342,7 +342,7 @@ int kallsyms_lookup_size_offset(unsigned long addr, 
unsigned long *symbolsize,
                return 1;
        }
        return !!module_address_lookup(addr, symbolsize, offset, NULL, NULL, 
namebuf) ||
-              !!__bpf_address_lookup(addr, symbolsize, offset, namebuf);
+              !!bpf_address_lookup(addr, symbolsize, offset, namebuf);
 }
 
 static int kallsyms_lookup_buildid(unsigned long addr,
@@ -383,8 +383,7 @@ static int kallsyms_lookup_buildid(unsigned long addr,
        ret = module_address_lookup(addr, symbolsize, offset,
                                    modname, modbuildid, namebuf);
        if (!ret)
-               ret = bpf_address_lookup(addr, symbolsize,
-                                        offset, modname, namebuf);
+               ret = bpf_address_lookup(addr, symbolsize, offset, namebuf);
 
        if (!ret)
                ret = ftrace_mod_address_lookup(addr, symbolsize,
-- 
2.52.0


Reply via email to