Hi Kumar,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on bpf/master]
url:
https://github.com/0day-ci/linux/commits/Kumar-Kartikeya-Dwivedi/bpf-Make...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git master
config: openrisc-buildonly-randconfig-r003-20211111 (attached as .config)
compiler: or1k-linux-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://github.com/0day-ci/linux/commit/ea181ce7046ae7f916b4ede6b04c48416...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Kumar-Kartikeya-Dwivedi/bpf-Make-CONFIG_DEBUG_INFO_BTF-depend-upon-CONFIG_BPF_SYSCALL/20211112-100114
git checkout ea181ce7046ae7f916b4ede6b04c48416d89b0b2
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir
ARCH=openrisc SHELL=/bin/bash kernel/bpf/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
kernel/bpf/btf.c: In function 'btf_seq_show':
kernel/bpf/btf.c:5876:29: error: function 'btf_seq_show' might be a candidate
for 'gnu_printf' format attribute [-Werror=suggest-attribute=format]
5876 | seq_vprintf((struct seq_file *)show->target, fmt, args);
| ^~~~~~~~
kernel/bpf/btf.c: In function 'btf_snprintf_show':
kernel/bpf/btf.c:5913:9: error: function 'btf_snprintf_show' might be a
candidate for 'gnu_printf' format attribute [-Werror=suggest-attribute=format]
5913 | len = vsnprintf(show->target, ssnprintf->len_left, fmt, args);
| ^~~
kernel/bpf/btf.c: At top level:
> kernel/bpf/btf.c:6349:8: error: redefinition of 'struct
kfunc_btf_id_list'
6349 | struct kfunc_btf_id_list {
| ^~~~~~~~~~~~~~~~~
In file included from include/linux/bpf_verifier.h:8,
from kernel/bpf/btf.c:19:
include/linux/btf.h:275:8: note: originally defined here
275 | struct kfunc_btf_id_list {};
| ^~~~~~~~~~~~~~~~~
> kernel/bpf/btf.c:6399:26: error: conflicting types for
'bpf_tcp_ca_kfunc_list'; have 'struct kfunc_btf_id_list'
6399 |
DEFINE_KFUNC_BTF_ID_LIST(bpf_tcp_ca_kfunc_list);
| ^~~~~~~~~~~~~~~~~~~~~
kernel/bpf/btf.c:6395:34: note: in definition of macro
'DEFINE_KFUNC_BTF_ID_LIST'
6395 | struct kfunc_btf_id_list name = { LIST_HEAD_INIT(name.list),
\
| ^~~~
In file included from include/linux/bpf_verifier.h:8,
from kernel/bpf/btf.c:19:
include/linux/btf.h:276:33: note: previous declaration of
'bpf_tcp_ca_kfunc_list' with type 'struct kfunc_btf_id_list'
276 | static struct kfunc_btf_id_list bpf_tcp_ca_kfunc_list __maybe_unused;
| ^~~~~~~~~~~~~~~~~~~~~
> kernel/bpf/btf.c:6400:26: error: conflicting types for
'prog_test_kfunc_list'; have 'struct kfunc_btf_id_list'
6400 |
DEFINE_KFUNC_BTF_ID_LIST(prog_test_kfunc_list);
| ^~~~~~~~~~~~~~~~~~~~
kernel/bpf/btf.c:6395:34: note: in definition of macro
'DEFINE_KFUNC_BTF_ID_LIST'
6395 | struct kfunc_btf_id_list name = { LIST_HEAD_INIT(name.list),
\
| ^~~~
In file included from include/linux/bpf_verifier.h:8,
from kernel/bpf/btf.c:19:
include/linux/btf.h:277:33: note: previous declaration of
'prog_test_kfunc_list' with type 'struct kfunc_btf_id_list'
277 | static struct kfunc_btf_id_list prog_test_kfunc_list __maybe_unused;
| ^~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
vim +6349 kernel/bpf/btf.c
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6348
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 @6349 struct kfunc_btf_id_list {
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6350 struct list_head list;
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6351 struct mutex mutex;
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6352 };
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6353
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6354 #ifdef
CONFIG_DEBUG_INFO_BTF_MODULES
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6355
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6356 void
register_kfunc_btf_id_set(struct kfunc_btf_id_list *l,
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6357 struct
kfunc_btf_id_set *s)
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6358 {
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6359 mutex_lock(&l->mutex);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6360 list_add(&s->list,
&l->list);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6361
mutex_unlock(&l->mutex);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6362 }
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6363
EXPORT_SYMBOL_GPL(register_kfunc_btf_id_set);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6364
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6365 void
unregister_kfunc_btf_id_set(struct kfunc_btf_id_list *l,
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6366 struct kfunc_btf_id_set
*s)
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6367 {
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6368 mutex_lock(&l->mutex);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6369
list_del_init(&s->list);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6370
mutex_unlock(&l->mutex);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6371 }
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6372
EXPORT_SYMBOL_GPL(unregister_kfunc_btf_id_set);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6373
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6374 bool
bpf_check_mod_kfunc_call(struct kfunc_btf_id_list *klist, u32 kfunc_id,
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6375 struct module *owner)
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6376 {
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6377 struct kfunc_btf_id_set *s;
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6378
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6379 if (!owner)
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6380 return false;
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6381
mutex_lock(&klist->mutex);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6382 list_for_each_entry(s,
&klist->list, list) {
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6383 if (s->owner == owner
&& btf_id_set_contains(s->set, kfunc_id)) {
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6384
mutex_unlock(&klist->mutex);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6385 return true;
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6386 }
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6387 }
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6388
mutex_unlock(&klist->mutex);
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6389 return false;
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6390 }
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6391
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6392 #endif
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6393
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6394 #define
DEFINE_KFUNC_BTF_ID_LIST(name) \
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6395 struct kfunc_btf_id_list name =
{ LIST_HEAD_INIT(name.list), \
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6396
__MUTEX_INITIALIZER(name.mutex) }; \
14f267d95fe4b08 Kumar Kartikeya Dwivedi 2021-10-02 6397 EXPORT_SYMBOL_GPL(name)
0e32dfc80bae53b Kumar Kartikeya Dwivedi 2021-10-02 6398
0e32dfc80bae53b Kumar Kartikeya Dwivedi 2021-10-02 @6399
DEFINE_KFUNC_BTF_ID_LIST(bpf_tcp_ca_kfunc_list);
c48e51c8b07aba8 Kumar Kartikeya Dwivedi 2021-10-02 @6400
DEFINE_KFUNC_BTF_ID_LIST(prog_test_kfunc_list);
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org