lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 22 Apr 2017 14:27:22 -0400 (EDT) From: David Miller <davem@...emloft.net> To: alexei.starovoitov@...il.com Cc: sparclinux@...r.kernel.org, netdev@...r.kernel.org, ast@...nel.org, daniel@...earbox.net Subject: Re: [PATCH 2/2] sparc64: Add eBPF JIT. From: Alexei Starovoitov <alexei.starovoitov@...il.com> Date: Sat, 22 Apr 2017 08:32:35 -0700 > On Fri, Apr 21, 2017 at 08:17:11PM -0700, David Miller wrote: >> >> This is an eBPF JIT for sparc64. All major features are supported. >> >> All tests under tools/testing/selftests/bpf/ pass. >> >> Signed-off-by: David S. Miller <davem@...emloft.net> > ... >> + /* tail call */ >> + case BPF_JMP | BPF_CALL |BPF_X: >> + emit_tail_call(ctx); >> + > > I think 'break;' is missing here. Good catch, I'll fix that. > When tail_call's target program is null the current program should > continue instead of aborting. > Like in our current ddos+lb setup the program looks like: > bpf_tail_call(ctx, &prog_array, 1); > bpf_tail_call(ctx, &prog_array, 2); > bpf_tail_call(ctx, &prog_array, 3); > return XDP_DROP; > > this way it will jump into the program that is installed in slot 1. > If it's empty, it will try slot 2... > If no programs installed it will drop the packet. Yes, with the break; fixed above that's what the sparc64 JIT will end up doing. If any of the tests don't pass in emit_tail_call() we branch to the end of the emit_tail_call() sequence. Thanks.
Powered by blists - more mailing lists