lkml.org 
[lkml]   [2022]   [Jul]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    Subject[jolsa-perf:bpf/tramp_29 25/32] kernel/bpf/trampoline.c:948:16: error: implicit declaration of function 'ftrace_hash_alloc'
    tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/tramp_29
    head: ec522c20e55e48f561146afbb81513e20870ee12
    commit: f8f16c805972e534643c5a5d23709766f7af22e4 [25/32] bpf: Add support to attach multi trampolines
    config: x86_64-randconfig-a006 (https://download.01.org/0day-ci/archive/20220712/202207120532.8OjZqfrT-lkp@intel.com/config)
    compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
    reproduce (this is a W=1 build):
    # https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?id=f8f16c805972e534643c5a5d23709766f7af22e4
    git remote add jolsa-perf https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
    git fetch --no-tags jolsa-perf bpf/tramp_29
    git checkout f8f16c805972e534643c5a5d23709766f7af22e4
    # save the config file
    mkdir build_dir && cp config build_dir/.config
    make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash

    If you fix the issue, kindly add following tag where applicable
    Reported-by: kernel test robot <lkp@intel.com>

    All errors (new ones prefixed by >>):

    kernel/bpf/trampoline.c: In function 'bpf_tramp_update_set':
    >> kernel/bpf/trampoline.c:948:16: error: implicit declaration of function 'ftrace_hash_alloc' [-Werror=implicit-function-declaration]
    948 | hash = ftrace_hash_alloc(FTRACE_HASH_MAX_BITS);
    | ^~~~~~~~~~~~~~~~~
    >> kernel/bpf/trampoline.c:948:34: error: 'FTRACE_HASH_MAX_BITS' undeclared (first use in this function)
    948 | hash = ftrace_hash_alloc(FTRACE_HASH_MAX_BITS);
    | ^~~~~~~~~~~~~~~~~~~~
    kernel/bpf/trampoline.c:948:34: note: each undeclared identifier is reported only once for each function it appears in
    >> kernel/bpf/trampoline.c:975:33: error: implicit declaration of function 'ftrace_hash_add_entry' [-Werror=implicit-function-declaration]
    975 | ftrace_hash_add_entry(hash, entry);
    | ^~~~~~~~~~~~~~~~~~~~~
    >> kernel/bpf/trampoline.c:989:15: error: implicit declaration of function 'set_ftrace_direct'; did you mean 'modify_ftrace_direct'? [-Werror=implicit-function-declaration]
    989 | err = set_ftrace_direct(hash);
    | ^~~~~~~~~~~~~~~~~
    | modify_ftrace_direct
    >> kernel/bpf/trampoline.c:991:9: error: implicit declaration of function 'ftrace_hash_free' [-Werror=implicit-function-declaration]
    991 | ftrace_hash_free(hash);
    | ^~~~~~~~~~~~~~~~
    cc1: some warnings being treated as errors


    vim +/ftrace_hash_alloc +948 kernel/bpf/trampoline.c

    941
    942 static int bpf_tramp_update_set(struct list_head *upd)
    943 {
    944 struct bpf_trampoline *tr;
    945 struct ftrace_hash *hash;
    946 int i, err;
    947
    > 948 hash = ftrace_hash_alloc(FTRACE_HASH_MAX_BITS);
    949 if (!hash)
    950 return -ENOMEM;
    951
    952 list_for_each_entry(tr, upd, update.list) {
    953 struct ftrace_func_entry *entry;
    954 unsigned long direct;
    955
    956 switch (tr->update.action) {
    957 case BPF_TRAMP_UPDATE_REG:
    958 case BPF_TRAMP_UPDATE_MODIFY:
    959 direct = (unsigned long) tr->update.im->image;
    960 break;
    961 case BPF_TRAMP_UPDATE_UNREG:
    962 direct = 0;
    963 break;
    964 }
    965
    966 if (tr->multi.id_multi) {
    967 for (i = 0; i < tr->multi.id_multi->cnt; i++) {
    968 entry = kmalloc(sizeof(*entry), GFP_KERNEL);
    969 if (!entry) {
    970 err = -ENOMEM;
    971 goto out_free;
    972 }
    973 entry->ip = (unsigned long) tr->multi.id_multi->addr[i];
    974 entry->direct = direct;
    > 975 ftrace_hash_add_entry(hash, entry);
    976 }
    977 } else {
    978 entry = kmalloc(sizeof(*entry), GFP_KERNEL);
    979 if (!entry) {
    980 err = -ENOMEM;
    981 goto out_free;
    982 }
    983 entry->ip = (unsigned long) tr->func.addr;
    984 entry->direct = direct;
    985 ftrace_hash_add_entry(hash, entry);
    986 }
    987 }
    988
    > 989 err = set_ftrace_direct(hash);
    990 out_free:
    > 991 ftrace_hash_free(hash);
    992 return err;
    993 }
    994

    --
    0-DAY CI Kernel Test Service
    https://01.org/lkp

    \
     
     \ /
      Last update: 2022-07-11 23:42    [W:3.220 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site