kernel-fxtec-pro1x/arch
Daniel Borkmann 3480593131 net: filter: get rid of BPF_S_* enum
This patch finally allows us to get rid of the BPF_S_* enum.
Currently, the code performs unnecessary encode and decode
workarounds in seccomp and filter migration itself when a filter
is being attached in order to overcome BPF_S_* encoding which
is not used anymore by the new interpreter resp. JIT compilers.

Keeping it around would mean that also in future we would need
to extend and maintain this enum and related encoders/decoders.
We can get rid of all that and save us these operations during
filter attaching. Naturally, also JIT compilers need to be updated
by this.

Before JIT conversion is being done, each compiler checks if A
is being loaded at startup to obtain information if it needs to
emit instructions to clear A first. Since BPF extensions are a
subset of BPF_LD | BPF_{W,H,B} | BPF_ABS variants, case statements
for extensions can be removed at that point. To ease and minimalize
code changes in the classic JITs, we have introduced bpf_anc_helper().

Tested with test_bpf on x86_64 (JIT, int), s390x (JIT, int),
arm (JIT, int), i368 (int), ppc64 (JIT, int); for sparc we
unfortunately didn't have access, but changes are analogous to
the rest.

Joint work with Alexei Starovoitov.

Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Mircea Gherzan <mgherzan@gmail.com>
Cc: Kees Cook <keescook@chromium.org>
Acked-by: Chema Gonzalez <chemag@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-06-01 22:16:58 -07:00
..
alpha
arc ARC: !PREEMPT: Ensure Return to kernel mode is IRQ safe 2014-04-30 08:21:43 -07:00
arm net: filter: get rid of BPF_S_* enum 2014-06-01 22:16:58 -07:00
arm64 - arm64 migrate_irqs() fix following commit ffde1de640 (irqchip: Gic: 2014-05-20 14:33:48 +09:00
avr32
blackfin
c6x
cris
frv
hexagon Hexagon: Delete stale barrier.h 2014-05-01 10:09:47 -07:00
ia64 ia64: add renameat2 syscall 2014-05-20 10:59:38 +02:00
m32r
m68k m68k: add renameat2 syscall 2014-05-20 10:59:37 +02:00
metag metag: Remove _STK_LIM_MAX override 2014-05-15 00:30:32 +01:00
microblaze
mips Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next into for-davem 2014-05-27 13:51:31 -04:00
mn10300
openrisc
parisc parisc: 'renameat2()' doesn't need (or have) a separate compat system call 2014-05-23 09:23:51 -07:00
powerpc net: filter: get rid of BPF_S_* enum 2014-06-01 22:16:58 -07:00
s390 net: filter: get rid of BPF_S_* enum 2014-06-01 22:16:58 -07:00
score
sh mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts 2014-04-25 16:05:40 -07:00
sparc net: filter: get rid of BPF_S_* enum 2014-06-01 22:16:58 -07:00
tile
um mm: split 'tlb_flush_mmu()' into tlb flushing and memory freeing parts 2014-04-25 16:05:40 -07:00
unicore32
x86 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-05-24 00:32:30 -04:00
xtensa Xtensa patchset for v3.15. 2014-05-05 15:36:59 -07:00
.gitignore
Kconfig