[jolsa-perf:bpf/tracing_multi_4 23/34] kernel/bpf/trampoline.c:1115:15: error: implicit declaration of function 'set_ftrace_direct'; did you mean 'modify_ftrace_direct'?
From: kernel test robot
Date: Thu Jul 28 2022 - 08:18:41 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/tracing_multi_4
head: 1637b6b5bec11596e52cdc0a6eadfa45a15276c3
commit: d2c85068156e7ef00b9748982859a332d50398cb [23/34] bpf: Add support to attach multi trampolines
config: x86_64-randconfig-a006 (https://download.01.org/0day-ci/archive/20220728/202207282008.dkbWC7Qx-lkp@xxxxxxxxx/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=d2c85068156e7ef00b9748982859a332d50398cb
git remote add jolsa-perf https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
git fetch --no-tags jolsa-perf bpf/tracing_multi_4
git checkout d2c85068156e7ef00b9748982859a332d50398cb
# 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@xxxxxxxxx>
All errors (new ones prefixed by >>):
kernel/bpf/trampoline.c: In function 'bpf_tramp_update_set':
kernel/bpf/trampoline.c:1074:16: error: implicit declaration of function 'ftrace_hash_alloc' [-Werror=implicit-function-declaration]
1074 | hash = ftrace_hash_alloc(FTRACE_HASH_MAX_BITS);
| ^~~~~~~~~~~~~~~~~
kernel/bpf/trampoline.c:1074:34: error: 'FTRACE_HASH_MAX_BITS' undeclared (first use in this function)
1074 | hash = ftrace_hash_alloc(FTRACE_HASH_MAX_BITS);
| ^~~~~~~~~~~~~~~~~~~~
kernel/bpf/trampoline.c:1074:34: note: each undeclared identifier is reported only once for each function it appears in
kernel/bpf/trampoline.c:1101:33: error: implicit declaration of function 'ftrace_hash_add_entry' [-Werror=implicit-function-declaration]
1101 | ftrace_hash_add_entry(hash, entry);
| ^~~~~~~~~~~~~~~~~~~~~
>> kernel/bpf/trampoline.c:1115:15: error: implicit declaration of function 'set_ftrace_direct'; did you mean 'modify_ftrace_direct'? [-Werror=implicit-function-declaration]
1115 | err = set_ftrace_direct(hash);
| ^~~~~~~~~~~~~~~~~
| modify_ftrace_direct
kernel/bpf/trampoline.c:1117:9: error: implicit declaration of function 'ftrace_hash_free' [-Werror=implicit-function-declaration]
1117 | ftrace_hash_free(hash);
| ^~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
vim +1115 kernel/bpf/trampoline.c
1067
1068 static int bpf_tramp_update_set(struct list_head *upd)
1069 {
1070 struct bpf_trampoline *tr;
1071 struct ftrace_hash *hash;
1072 int i, err;
1073
1074 hash = ftrace_hash_alloc(FTRACE_HASH_MAX_BITS);
1075 if (!hash)
1076 return -ENOMEM;
1077
1078 list_for_each_entry(tr, upd, update.list) {
1079 struct ftrace_func_entry *entry;
1080 unsigned long direct;
1081
1082 switch (tr->update.action) {
1083 case BPF_TRAMP_UPDATE_REG:
1084 case BPF_TRAMP_UPDATE_MODIFY:
1085 direct = (unsigned long) tr->update.im->image;
1086 break;
1087 case BPF_TRAMP_UPDATE_UNREG:
1088 direct = 0;
1089 break;
1090 }
1091
1092 if (tr->multi.id_multi) {
1093 for (i = 0; i < tr->multi.id_multi->cnt; i++) {
1094 entry = kmalloc(sizeof(*entry), GFP_KERNEL);
1095 if (!entry) {
1096 err = -ENOMEM;
1097 goto out_free;
1098 }
1099 entry->ip = (unsigned long) tr->multi.id_multi->addr[i];
1100 entry->direct = direct;
1101 ftrace_hash_add_entry(hash, entry);
1102 }
1103 } else {
1104 entry = kmalloc(sizeof(*entry), GFP_KERNEL);
1105 if (!entry) {
1106 err = -ENOMEM;
1107 goto out_free;
1108 }
1109 entry->ip = (unsigned long) tr->func.addr;
1110 entry->direct = direct;
1111 ftrace_hash_add_entry(hash, entry);
1112 }
1113 }
1114
> 1115 err = set_ftrace_direct(hash);
1116 out_free:
1117 ftrace_hash_free(hash);
1118 return err;
1119 }
1120
--
0-DAY CI Kernel Test Service
https://01.org/lkp