linux/arch/arm
Nicolas Schichan 4560cdff03 ARM: net: support BPF_ALU | BPF_MOD instructions in the BPF JIT.
For ARMv7 with UDIV instruction support, generate an UDIV instruction
followed by an MLS instruction.

For other ARM variants, generate code calling a C wrapper similar to
the jit_udiv() function used for BPF_ALU | BPF_DIV instructions.

Some performance numbers reported by the test_bpf module (the duration
per filter run is reported in nanoseconds, between "jitted:<x>" and
"PASS":

ARMv7 QEMU nojit:	test_bpf: #3 DIV_MOD_KX jited:0 2196 PASS
ARMv7 QEMU jit:		test_bpf: #3 DIV_MOD_KX jited:1 104 PASS
ARMv5 QEMU nojit:	test_bpf: #3 DIV_MOD_KX jited:0 2176 PASS
ARMv5 QEMU jit:		test_bpf: #3 DIV_MOD_KX jited:1 1104 PASS
ARMv5 kirkwood nojit:	test_bpf: #3 DIV_MOD_KX jited:0 1103 PASS
ARMv5 kirkwood jit:	test_bpf: #3 DIV_MOD_KX jited:1 311 PASS

Signed-off-by: Nicolas Schichan <nschichan@freebox.fr>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-10-05 07:02:42 -07:00
..
boot Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2015-10-02 07:21:25 -07:00
common genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
configs ARM: omap2plus_defconfig: enable GPIO_PCA953X 2015-09-16 17:01:39 -07:00
crypto
firmware
include Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2015-09-27 06:48:48 -04:00
kernel ARM: wire up new syscalls 2015-09-22 08:13:42 +01:00
kvm arm/arm64: KVM: Remove 'config KVM_ARM_MAX_VCPUS' 2015-09-17 13:13:27 +01:00
lib Merge branch 'uaccess' into fixes 2015-09-11 19:18:28 +01:00
mach-alpine
mach-asm9260
mach-at91 genalloc: add name arg to gen_pool_get() and devm_gen_pool_create() 2015-09-04 16:54:41 -07:00
mach-axxia
mach-bcm ARM: SoC platform updates for v4.3 2015-09-01 12:18:40 -07:00
mach-berlin
mach-clps711x libnvdimm for 4.3: 2015-09-08 14:35:59 -07:00
mach-cns3xxx ARM: appropriate __init annotation for const data 2015-07-28 13:55:27 +02:00
mach-davinci ARM: SoC platform updates for v4.3 2015-09-01 12:18:40 -07:00
mach-digicolor ARM: appropriate __init annotation for const data 2015-07-28 13:55:27 +02:00
mach-dove genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-ebsa110 ARM: kill off set_irq_flags usage 2015-07-28 13:58:13 +02:00
mach-efm32
mach-ep93xx ARM/fb: ep93xx: switch framebuffer to use modedb only 2015-08-13 12:25:44 +02:00
mach-exynos ARM: SoC: late fixes and dependencies 2015-09-10 17:59:04 -07:00
mach-footbridge genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-gemini genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-highbank ARM: migrate to common PSCI client code 2015-08-03 15:38:39 +01:00
mach-hisi
mach-imx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-integrator
mach-iop13xx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-iop32x ARM: kill off set_irq_flags usage 2015-07-28 13:58:13 +02:00
mach-iop33x ARM: kill off set_irq_flags usage 2015-07-28 13:58:13 +02:00
mach-ixp4xx ARM: kill off set_irq_flags usage 2015-07-28 13:58:13 +02:00
mach-keystone
mach-ks8695 ARM: kill off set_irq_flags usage 2015-07-28 13:58:13 +02:00
mach-lpc18xx
mach-lpc32xx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-mediatek
mach-meson
mach-mmp ARM: mmp: remove unused RTC register definitions 2015-09-05 19:37:17 +02:00
mach-moxart
mach-mv78xx0
mach-mvebu ARM: SoC driver updates for v4.3 2015-09-01 13:00:04 -07:00
mach-mxs ARM: appropriate __init annotation for const data 2015-07-28 13:55:27 +02:00
mach-netx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-nomadik ARM: nomadik: move l2x0 setup to device tree 2015-08-11 15:29:59 +02:00
mach-nspire
mach-omap1 genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-omap2 ARM: SoC fixes for v4.3-rc 2015-09-27 06:45:18 -04:00
mach-orion5x ARM: DT updates for v4.3 2015-09-01 13:09:20 -07:00
mach-picoxcell
mach-prima2 Merge branches 'cleanup', 'fixes', 'misc', 'omap-barrier' and 'uaccess' into for-linus 2015-09-03 15:28:37 +01:00
mach-pxa ARM: SoC fixes for v4.3-rc 2015-09-27 06:45:18 -04:00
mach-qcom
mach-realview ARM: appropriate __init annotation for const data 2015-07-28 13:55:27 +02:00
mach-rockchip ARM: rockchip: pm: Fix PTR_ERR() argument 2015-08-24 12:39:14 +02:00
mach-rpc genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-s3c24xx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-s3c64xx genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-s5pv210
mach-sa1100 genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
mach-shmobile libnvdimm for 4.3: 2015-09-08 14:35:59 -07:00
mach-socfpga genalloc: add name arg to gen_pool_get() and devm_gen_pool_create() 2015-09-04 16:54:41 -07:00
mach-spear ARM: SoC cleanups for v4.3 2015-09-01 12:10:20 -07:00
mach-sti ARM: SoC platform updates for v4.3 2015-09-01 12:18:40 -07:00
mach-stm32
mach-sunxi
mach-tegra ARM: SoC driver updates for v4.3 2015-09-01 13:00:04 -07:00
mach-u300
mach-uniphier ARM: uniphier: drop v7_invalidate_l1 call at secondary entry 2015-08-13 12:12:10 +02:00
mach-ux500 Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2015-09-03 16:27:01 -07:00
mach-versatile
mach-vexpress irqchip/gic: Ensure gic_cpu_if_up/down() programs correct GIC instance 2015-08-04 14:14:06 +02:00
mach-vt8500
mach-w90x900 ARM: kill off set_irq_flags usage 2015-07-28 13:58:13 +02:00
mach-zx ARM: SoC platform updates for v4.3 2015-09-01 12:18:40 -07:00
mach-zynq Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-01 14:33:35 -07:00
mm ARM: alignment: fix alignment handling for uaccess changes 2015-09-24 11:07:00 +01:00
net ARM: net: support BPF_ALU | BPF_MOD instructions in the BPF JIT. 2015-10-05 07:02:42 -07:00
nwfpe ARM: swpan: fix nwfpe for uaccess changes 2015-09-09 23:26:11 +01:00
oprofile
plat-iop
plat-omap
plat-orion genirq: Remove irq argument from irq flow handlers 2015-09-16 15:47:51 +02:00
plat-pxa ARM: pxa: ssp: Fix build error by removing originally incorrect DT binding 2015-09-13 12:55:27 +02:00
plat-samsung ARM: SAMSUNG: remove keypad-core header in plat-samsung 2015-07-30 02:02:06 +09:00
plat-versatile
probes
tools
vdso ARM: 8405/1: VDSO: fix regression with toolchains lacking ld.bfd executable 2015-07-31 18:54:45 +01:00
vfp
xen Merge branch 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2015-09-14 12:24:10 -07:00
Kconfig Merge branch 'uaccess' into fixes 2015-09-11 19:18:28 +01:00
Kconfig-nommu
Kconfig.debug The i.MX SoC changes for 4.3: 2015-08-18 13:10:05 -07:00
Makefile ARM: 8429/1: disable GCC SRA optimization 2015-09-07 13:24:05 +01:00