Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddecdfce authored by Mircea Gherzan's avatar Mircea Gherzan Committed by Russell King
Browse files

ARM: 7259/3: net: JIT compiler for packet filters



Based of Matt Evans's PPC64 implementation.

The compiler generates ARM instructions but interworking is
supported for Thumb2 kernels.

Supports both little and big endian. Unaligned loads are emitted
for ARMv6+. Not all the BPF opcodes that deal with ancillary data
are supported. The scratch memory of the filter lives on the stack.
Hardware integer division is used if it is available.

Enabled in the same way as for x86-64 and PPC64:

	echo 1 > /proc/sys/net/core/bpf_jit_enable

A value greater than 1 enables opcode output.

Signed-off-by: default avatarMircea Gherzan <mgherzan@gmail.com>
Acked-by: default avatarDavid S. Miller <davem@davemloft.net>
Acked-by: default avatarEric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 09f05d85
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ config ARM
	select GENERIC_IRQ_SHOW
	select CPU_PM if (SUSPEND || CPU_IDLE)
	select GENERIC_PCI_IOMAP
	select HAVE_BPF_JIT
	help
	  The ARM series is a line of low-power-consumption RISC chip designs
	  licensed by ARM Ltd and targeted at embedded applications and
+1 −0
Original line number Diff line number Diff line
@@ -253,6 +253,7 @@ core-$(CONFIG_VFP) += arch/arm/vfp/

# If we have a machine-specific directory, then include it in the build.
core-y				+= arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
core-y				+= arch/arm/net/
core-y				+= $(machdirs) $(platdirs)

drivers-$(CONFIG_OPROFILE)      += arch/arm/oprofile/

arch/arm/net/Makefile

0 → 100644
+3 −0
Original line number Diff line number Diff line
# ARM-specific networking code

obj-$(CONFIG_BPF_JIT) += bpf_jit_32.o
+915 −0

File added.

Preview size limit exceeded, changes collapsed.

+190 −0

File added.

Preview size limit exceeded, changes collapsed.