On Tue, Dec 05, 2017 at 08:13:11PM +0530, Abdul Haleem wrote: > Hi Al Viro, > > Today's next kernel build failed with commit 41e83b9: fix "netfilter: > xt_bpf: Fix XT_BPF_MODE_FD_PINNED > > Machine Type: Power 7 > kernel version: 4.15.0-rc2-next-20171204 > kernel config: attached > test: 'make modules' > > ERROR: ".bpf_prog_get_type_path" [net/netfilter/xt_bpf.ko] undefined! > > Kernel built fine when bad commit is reverted. In the same commit there's +EXPORT_SYMBOL(bpf_prog_get_type_path); so I really wonder WTF is going on... Oh, I see. !BPF_SYSCALL and NETFILTER_XT_MATCH_BPF in .config triggers that. Incremental (to be folded into the commit in question) follows: diff --git a/include/linux/bpf.h b/include/linux/bpf.h index a7000e4775e7..571450f98006 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -419,6 +419,8 @@ static inline int bpf_map_attr_numa_node(const union bpf_attr *attr) attr->numa_node : NUMA_NO_NODE; } +struct bpf_prog *bpf_prog_get_type_path(const char *name, enum bpf_prog_type type); + #else /* !CONFIG_BPF_SYSCALL */ static inline struct bpf_prog *bpf_prog_get(u32 ufd) { @@ -506,6 +508,12 @@ static inline int cpu_map_enqueue(struct bpf_cpu_map_entry *rcpu, { return 0; } + +static inline struct bpf_prog *bpf_prog_get_type_path(const char *name, + enum bpf_prog_type type) +{ + return -EOPNOTSUPP; +} #endif /* CONFIG_BPF_SYSCALL */ static inline struct bpf_prog *bpf_prog_get_type(u32 ufd, @@ -514,7 +522,6 @@ static inline struct bpf_prog *bpf_prog_get_type(u32 ufd, return bpf_prog_get_type_dev(ufd, type, false); } -struct bpf_prog *bpf_prog_get_type_path(const char *name, enum bpf_prog_type type); bool bpf_prog_get_ok(struct bpf_prog *, enum bpf_prog_type *, bool); int bpf_prog_offload_compile(struct bpf_prog *prog); -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html