Message ID | 20181120220820.1890550-1-yhs@fb.com |
---|---|
State | Accepted, archived |
Delegated to: | BPF Maintainers |
Headers | show |
Series | [bpf-next,v2] bpf: fix a compilation error when CONFIG_BPF_SYSCALL is not defined | expand |
On Tue, Nov 20, 2018 at 02:08:20PM -0800, Yonghong Song wrote: > Kernel test robot (lkp@intel.com) reports a compilation error at > https://www.spinics.net/lists/netdev/msg534913.html > introduced by commit 838e96904ff3 ("bpf: Introduce bpf_func_info"). > > If CONFIG_BPF is defined and CONFIG_BPF_SYSCALL is not defined, > the following error will appear: > kernel/bpf/core.c:414: undefined reference to `btf_type_by_id' > kernel/bpf/core.c:415: undefined reference to `btf_name_by_offset' > > When CONFIG_BPF_SYSCALL is not defined, > let us define stub inline functions for btf_type_by_id() > and btf_name_by_offset() in include/linux/btf.h. > This way, the compilation failure can be avoided. > > Fixes: 838e96904ff3 ("bpf: Introduce bpf_func_info") > Reported-by: kbuild test robot <lkp@intel.com> > Cc: Martin KaFai Lau <kafai@fb.com> > Signed-off-by: Yonghong Song <yhs@fb.com> Applied, Thanks
diff --git a/include/linux/btf.h b/include/linux/btf.h index 7f2c0a4a45ea..8c2199b5d250 100644 --- a/include/linux/btf.h +++ b/include/linux/btf.h @@ -46,7 +46,21 @@ void btf_type_seq_show(const struct btf *btf, u32 type_id, void *obj, struct seq_file *m); int btf_get_fd_by_id(u32 id); u32 btf_id(const struct btf *btf); + +#ifdef CONFIG_BPF_SYSCALL const struct btf_type *btf_type_by_id(const struct btf *btf, u32 type_id); const char *btf_name_by_offset(const struct btf *btf, u32 offset); +#else +static inline const struct btf_type *btf_type_by_id(const struct btf *btf, + u32 type_id) +{ + return NULL; +} +static inline const char *btf_name_by_offset(const struct btf *btf, + u32 offset) +{ + return NULL; +} +#endif #endif
Kernel test robot (lkp@intel.com) reports a compilation error at https://www.spinics.net/lists/netdev/msg534913.html introduced by commit 838e96904ff3 ("bpf: Introduce bpf_func_info"). If CONFIG_BPF is defined and CONFIG_BPF_SYSCALL is not defined, the following error will appear: kernel/bpf/core.c:414: undefined reference to `btf_type_by_id' kernel/bpf/core.c:415: undefined reference to `btf_name_by_offset' When CONFIG_BPF_SYSCALL is not defined, let us define stub inline functions for btf_type_by_id() and btf_name_by_offset() in include/linux/btf.h. This way, the compilation failure can be avoided. Fixes: 838e96904ff3 ("bpf: Introduce bpf_func_info") Reported-by: kbuild test robot <lkp@intel.com> Cc: Martin KaFai Lau <kafai@fb.com> Signed-off-by: Yonghong Song <yhs@fb.com> --- include/linux/btf.h | 14 ++++++++++++++ 1 file changed, 14 insertions(+) Changelog: v1 -> v2: . Two functions should be static inline functions if CONFIG_BPF_SYSCALL is not defined.