Re: mips:allmodconfig build failure in 3.16-rc1 due to bpf_jit code

From: Daniel Borkmann
Date: Tue Jun 17 2014 - 06:56:37 EST


On 06/17/2014 12:39 PM, Guenter Roeck wrote:
On 06/17/2014 03:16 AM, Daniel Borkmann wrote:
On 06/17/2014 10:20 AM, Daniel Borkmann wrote:
On 06/17/2014 04:24 AM, Guenter Roeck wrote:
mips:allmodconfig fails in 3.16-rc1 with lots of undefined symbols.

arch/mips/net/bpf_jit.c: In function 'is_load_to_a':
arch/mips/net/bpf_jit.c:559:7: error: 'BPF_S_LD_W_LEN' undeclared (first use in this function)
arch/mips/net/bpf_jit.c:559:7: note: each undeclared identifier is reported only once for each function it appears in
arch/mips/net/bpf_jit.c:560:7: error: 'BPF_S_LD_W_ABS' undeclared (first use in this function)
arch/mips/net/bpf_jit.c:561:7: error: 'BPF_S_LD_H_ABS' undeclared (first use in this function)
arch/mips/net/bpf_jit.c:562:7: error: 'BPF_S_LD_B_ABS' undeclared (first use in this function)
arch/mips/net/bpf_jit.c:563:7: error: 'BPF_S_ANC_CPU' undeclared (first use in this function)
arch/mips/net/bpf_jit.c:564:7: error: 'BPF_S_ANC_IFINDEX' undeclared (first use in this function)
arch/mips/net/bpf_jit.c:565:7: error: 'BPF_S_ANC_MARK' undeclared (first use in this function)

and so on.

Those symbols are not defined anywhere.

The problem is due to a conflict with commit 348059313 (net: filter: get rid of BPF_S_*
enum), which removed those definitions.

Yep, it seems both got in this merge window from different trees. Don't have mips, but
I'll have a look, and send you a patch.

Could you give the attached patch a try?

Yes, this fixes the build problem. Obviously I have no idea if it works ;-)

Thanks Guenter!

We have a test suite for BPF under lib/test_bpf.c that was designed for the
interpreter and for BPF JIT developers in mind and pretty much covers most
cases. E.g. one possibility to run it would be:

0) compile module test_bpf (Kernel Hacking -> Test BPF filter functionality)
1) echo 1 > /proc/sys/net/core/bpf_jit_enable [<- enables BPF JIT]
2) modprobe test_bpf [<- runs test suite]

The results will be visible in the klog via dmesg (if at least one test fails,
the module init handler will return an error).

Best,

Daniel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/