platform_kernel-5.15/arch/arm64/include/asm
Russell King 9c82ce5936 arm64/bpf: Remove 128MB limit for BPF JIT programs
commit b89ddf4cca43f1269093942cf5c4e457fd45c335 upstream.

Commit 91fc957c9b ("arm64/bpf: don't allocate BPF JIT programs in module
memory") restricts BPF JIT program allocation to a 128MB region to ensure
BPF programs are still in branching range of each other. However this
restriction should not apply to the aarch64 JIT, since BPF_JMP | BPF_CALL
are implemented as a 64-bit move into a register and then a BLR instruction -
which has the effect of being able to call anything without proximity
limitation.

The practical reason to relax this restriction on JIT memory is that 128MB of
JIT memory can be quickly exhausted, especially where PAGE_SIZE is 64KB - one
page is needed per program. In cases where seccomp filters are applied to
multiple VMs on VM launch - such filters are classic BPF but converted to
BPF - this can severely limit the number of VMs that can be launched. In a
world where we support BPF JIT always on, turning off the JIT isn't always an
option either.

Fixes: 91fc957c9b ("arm64/bpf: don't allocate BPF JIT programs in module memory")
Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Russell King <russell.king@oracle.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Tested-by: Alan Maguire <alan.maguire@oracle.com>
Link: https://lore.kernel.org/bpf/1636131046-5982-2-git-send-email-alan.maguire@oracle.com
Reviewed-by: Tom Saeger <tom.saeger@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-01-29 10:58:25 +01:00
..
vdso powerpc updates for 5.13 2021-04-30 12:22:28 -07:00
xen xen/arm: introduce XENFEAT_direct_mapped and XENFEAT_not_direct_mapped 2021-04-23 11:33:50 +02:00
Kbuild set_memory: allow querying whether set_direct_map_*() is actually enabled 2021-07-08 11:48:20 -07:00
acenv.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
acpi.h Revert "ACPI: Add memory semantics to acpi_os_map_memory()" 2021-09-23 20:39:36 +02:00
alternative-macros.h Merge branch 'for-next/insn' into for-next/core 2021-06-24 14:03:24 +01:00
alternative.h arm64: alternatives: Split up alternative.h 2020-11-09 21:49:34 +00:00
arch_gicv3.h arm64: Rename arm64-internal cache maintenance functions 2021-05-25 19:27:49 +01:00
arch_timer.h arm64: vdso: Avoid ISB after reading from cntvct_el0 2021-03-24 16:48:41 +00:00
archrandom.h arm64: Add support for SMCCC TRNG entropy source 2021-01-21 17:42:46 +00:00
arm-cci.h
arm_dsu_pmu.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
asm-bug.h
asm-offsets.h
asm-prototypes.h kasan: arm64: support specialized outlined tag mismatch checks 2021-05-26 23:31:26 +01:00
asm-uaccess.h arm64: vmlinux.ld.S: add assertion for reserved_pg_dir offset 2021-02-03 20:43:45 +00:00
asm_pointer_auth.h arm64: Conditionally configure PTR_AUTH key of the kernel. 2021-06-15 11:32:31 +01:00
assembler.h arm64: Mitigate MTE issues with str{n}cmp() 2021-09-21 14:50:19 +01:00
atomic.h locking/atomic: make ARCH_ATOMIC a Kconfig symbol 2021-05-26 13:20:49 +02:00
atomic_ll_sc.h arm64: Move the LSE gas support detection to Kconfig 2020-01-15 12:50:48 +00:00
atomic_lse.h arm64: lse: fix LSE atomics with LLVM's integrated assembler 2020-01-16 17:25:10 +00:00
barrier.h arm64: Fix stale link in the arch_counter_enforce_ordering() comment 2021-05-18 10:47:13 +01:00
bitops.h
bitrev.h
boot.h arm64: get rid of TEXT_OFFSET 2020-09-07 15:00:52 +01:00
brk-imm.h arm64: kprobes: Use BRK instead of single-step when executing instructions out-of-line 2020-11-03 14:03:38 +00:00
bug.h
cache.h Revert "arm64: cache: Lower ARCH_DMA_MINALIGN to 64 (L1_CACHE_BYTES)" 2021-07-12 13:37:34 +01:00
cacheflush.h set_memory: allow querying whether set_direct_map_*() is actually enabled 2021-07-08 11:48:20 -07:00
checksum.h arm64: csum: cast to the proper type 2021-03-15 10:57:21 +00:00
clocksource.h arm64: Introduce asm/vdso/clocksource.h 2020-03-21 15:23:55 +01:00
cmpxchg.h arm64: fix unreachable code issue with cmpxchg 2019-09-17 12:11:50 +01:00
compat.h arch: remove compat_alloc_user_space 2021-09-08 15:32:35 -07:00
compiler.h CFI: Move function_nocfi() into compiler.h 2021-06-14 09:12:09 -07:00
cpu.h arm64: cpuinfo: Split AArch32 registers out into a separate struct 2021-06-11 13:25:40 +01:00
cpu_ops.h arm64: fix some spelling mistakes in the comments by codespell 2020-09-07 14:18:50 +01:00
cpufeature.h ARM: 2021-09-07 13:40:51 -07:00
cpuidle.h arm64: Add cpuidle context save/restore helpers 2021-06-17 18:00:39 +01:00
cputype.h arm64: cputype: Add CPU implementor & types for the Apple M1 cores 2021-04-08 20:18:38 +09:00
current.h
daifflags.h arm64: entry: always set GIC_PRIO_PSR_I_SET during entry 2021-05-05 18:13:58 +01:00
dcc.h
debug-monitors.h arm64: kprobes: Use BRK instead of single-step when executing instructions out-of-line 2020-11-03 14:03:38 +00:00
device.h arm64: Remove dev->archdata.iommu pointer 2020-06-30 11:59:49 +02:00
dmi.h
efi.h efi: Move efifb_setup_from_dmi() prototype from arch headers 2022-01-05 12:42:34 +01:00
el2_setup.h arm64 updates for 5.15: 2021-09-01 15:04:29 -07:00
elf.h arm64: exec: Adjust affinity for compat tasks with mismatched 32-bit EL0 2021-08-20 12:33:06 +02:00
esr.h KVM: arm64: Extract ESR_ELx.EC only 2021-11-18 19:16:02 +01:00
exception.h arm64: entry: move bulk of ret_to_user to C 2021-08-05 14:09:49 +01:00
exec.h arm64: uaccess: remove set_fs() 2020-12-02 19:49:11 +00:00
extable.h arm64/bpf: Remove 128MB limit for BPF JIT programs 2022-01-29 10:58:25 +01:00
fb.h
fixmap.h arm64/fixmap: make notes of fixed_addresses more precisely 2020-08-08 19:25:04 +01:00
fpsimd.h arm64/sve: Make fpsimd_bind_task_to_cpu() static 2021-08-02 17:48:16 +01:00
fpsimdmacros.h arm64/sve: Add a comment documenting the binutils needed for SVE asm 2021-08-24 16:44:23 +01:00
ftrace.h arm64: implement ftrace with regs 2019-11-06 14:17:35 +00:00
futex.h arm64: uaccess: rename privileged uaccess routines 2020-12-02 19:49:10 +00:00
hardirq.h arm64: irqstat: Get rid of duplicated declaration 2020-11-23 10:31:05 +01:00
hugetlb.h mm/hugetlb: change parameters of arch_make_huge_pte() 2021-06-30 20:47:26 -07:00
hw_breakpoint.h arm64: remove pointless __KERNEL__ guards 2019-08-05 11:06:33 +01:00
hwcap.h ARM: ep93xx: remove MaverickCrunch support 2021-08-04 13:30:04 +02:00
hyp_image.h KVM: arm64: Allow using kvm_nvhe_sym() in hyp code 2021-03-19 12:01:20 +00:00
hyperv-tlfs.h arm64: hyperv: Add Hyper-V hypercall and register access utilities 2021-08-04 16:54:36 +00:00
hypervisor.h arm/arm64: Probe for the presence of KVM hypervisor 2021-03-31 09:16:55 +01:00
image.h
insn-def.h arm64: insn: avoid circular include dependency 2021-06-21 11:58:03 +01:00
insn.h arm64: insn: avoid circular include dependency 2021-06-21 11:58:03 +01:00
io.h asm-generic/io.h: implement pci_remap_cfgspace using ioremap_np 2021-04-08 20:18:38 +09:00
irq.h arm64: irq: allow FIQs to be handled 2021-03-24 20:19:30 +00:00
irq_work.h arm64: smp: Add missing prototype for some smp.c functions 2021-03-29 10:41:42 +01:00
irqflags.h arm64: Always keep DAIF.[IF] in sync 2021-03-24 20:19:30 +00:00
jump_label.h
kasan.h arm64: kasan: simplify and inline MTE functions 2021-02-26 09:41:03 -08:00
kernel-pgtable.h arm64: head: avoid over-mapping in map_memory 2021-08-24 16:44:23 +01:00
kexec.h arm64: Use ELF fields defined in 'struct kimage' 2021-03-08 12:06:28 -07:00
kfence.h set_memory: allow querying whether set_direct_map_*() is actually enabled 2021-07-08 11:48:20 -07:00
kgdb.h
kprobes.h arm64: kprobes: Remove redundant kprobe_step_ctx 2020-11-10 17:12:30 +00:00
kvm_arm.h KVM: arm64: Avoid setting the upper 32 bits of TCR_EL2 and CPTR_EL2 to 1 2021-12-08 09:04:44 +01:00
kvm_asm.h Merge branch kvm-arm64/pkvm-fixed-features-prologue into kvmarm-master/next 2021-08-20 12:23:53 +01:00
kvm_emulate.h KVM: arm64: Introduce MTE VM feature 2021-06-22 14:08:05 +01:00
kvm_host.h Merge branch kvm-arm64/pkvm-fixed-features-prologue into kvmarm-master/next 2021-08-20 12:23:53 +01:00
kvm_hyp.h KVM: arm64: Restore mdcr_el2 from vcpu 2021-08-20 11:12:17 +01:00
kvm_mmu.h KVM: arm64: Upgrade VMID accesses to {READ,WRITE}_ONCE 2021-08-20 09:12:24 +01:00
kvm_mte.h KVM: arm64: Save/restore MTE registers 2021-06-22 14:08:05 +01:00
kvm_pgtable.h KVM: arm64: Enable retrieving protections attributes of PTEs 2021-08-11 11:39:51 +01:00
kvm_ptrauth.h KVM: arm64: Update context references from host to hyp 2020-09-15 18:39:02 +01:00
kvm_ras.h
kvm_types.h KVM: arm64: Use common KVM implementation of MMU memory caches 2020-07-09 13:29:43 -04:00
linkage.h arm64: Add assembly annotations for weak-PI-alias madness 2021-06-01 18:34:38 +01:00
lse.h arm64: lse: Fix LSE atomics with LLVM 2020-02-18 18:10:49 +00:00
memory.h arm64/bpf: Remove 128MB limit for BPF JIT programs 2022-01-29 10:58:25 +01:00
mman.h arm64: mte: Validate the PROT_MTE request via arch_validate_flags() 2020-09-04 12:46:07 +01:00
mmu.h arm64: mm: Fix TLBI vs ASID rollover 2021-08-06 13:52:03 +01:00
mmu_context.h arm64: Implement task_cpu_possible_mask() 2021-08-20 12:33:06 +02:00
mmzone.h
module.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
module.lds.h kasan: arm64: support specialized outlined tag mismatch checks 2021-05-26 23:31:26 +01:00
mshyperv.h arm64: hyperv: Add Hyper-V hypercall and register access utilities 2021-08-04 16:54:36 +00:00
mte-def.h KVM: arm64: Add ioctl to fetch/store tags in a guest 2021-06-22 14:08:06 +01:00
mte-kasan.h arm64: mte: DC {GVA,GZVA} shouldn't be used when DCZID_EL0.DZP == 1 2022-01-27 11:03:28 +01:00
mte.h arm64: add MTE supported check to thread switching and syscall entry/exit 2021-09-21 12:17:30 +01:00
neon-intrinsics.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
neon.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
numa.h numa: Move numa implementation to common code 2021-01-14 15:08:55 -08:00
page-def.h arm64/mm: Unify CONT_PTE_SHIFT 2020-09-11 16:33:43 +01:00
page.h Partially revert "arm64/mm: drop HAVE_ARCH_PFN_VALID" 2021-08-25 11:33:24 +01:00
paravirt.h x86/paravirt: Switch time pvops functions to use static_call() 2021-03-11 16:17:52 +01:00
patching.h arm64: insn: decouple patching from insn code 2021-06-11 11:19:27 +01:00
pci.h arm64: Enable PCI write-combine resources under sysfs 2020-09-18 14:05:13 +01:00
percpu.h KVM: arm64: Support per_cpu_ptr in nVHE hyp code 2020-12-04 10:08:34 +00:00
perf_event.h arm64: perf: Add more support on caps under sysfs 2021-06-03 09:53:17 +01:00
pgalloc.h arm64: mm: Fix VM_BUG_ON(mm != &init_mm) for trans_pgd 2021-12-01 09:04:43 +01:00
pgtable-hwdef.h arm64/mm: Drop SECTION_[SHIFT|SIZE|MASK] 2021-06-15 12:08:39 +01:00
pgtable-prot.h arm64: mm: Remove unused support for Normal-WT memory type 2021-06-01 18:53:53 +01:00
pgtable-types.h arm64: add support for folded p4d page tables 2020-06-04 19:06:21 -07:00
pgtable.h arm64: pgtable: make __pte_to_phys/__phys_to_pte_val inline functions 2021-11-18 19:17:11 +01:00
pointer_auth.h arm64: move preemption disablement to prctl handlers 2021-07-28 18:33:49 +01:00
preempt.h sched/core: Initialize the idle task with preemption disabled 2021-05-12 13:01:45 +02:00
probes.h arm64/fpsimd: add <asm/insn.h> to <asm/kprobes.h> to fix fpsimd build 2020-11-23 10:59:00 +00:00
proc-fns.h arm64: mm: convert cpu_do_switch_mm() to C 2020-02-27 14:30:50 +00:00
processor.h arm64: move preemption disablement to prctl handlers 2021-07-28 18:33:49 +01:00
ptdump.h arm64: Add __init section marker to some functions 2021-04-08 17:45:10 +01:00
ptrace.h arm64: fix compat syscall return truncation 2021-08-03 10:35:03 +01:00
pvclock-abi.h KVM: arm64: Implement PV_TIME_FEATURES call 2019-10-21 19:20:27 +01:00
rwonce.h arm64: lto: Strengthen READ_ONCE() to acquire when CONFIG_LTO=y 2020-11-09 21:49:34 +00:00
scs.h arm64: scs: Drop unused 'tmp' argument to scs_{load, save} asm macros 2021-05-27 17:55:33 +01:00
sdei.h Merge branch 'for-next/entry' into for-next/core 2021-06-24 14:01:55 +01:00
seccomp.h arm64: Enable seccomp architecture tracking 2020-11-20 11:16:34 -08:00
sections.h KVM: arm64: Introduce a BSS section for use at Hyp 2021-03-19 12:01:20 +00:00
set_memory.h set_memory: allow querying whether set_direct_map_*() is actually enabled 2021-07-08 11:48:20 -07:00
setup.h arm64: Extract early FDT mapping from kaslr_early_init() 2021-02-09 13:47:50 +00:00
shmparam.h
signal.h arm64: expose FAR_EL1 tag bits in siginfo 2020-11-23 18:17:39 +00:00
signal32.h arm64: remove pointless __KERNEL__ guards 2019-08-05 11:06:33 +01:00
simd.h arm64: replace in_irq() with in_hardirq() 2021-08-20 19:49:38 +01:00
smp.h arm64: smp: remove stack from secondary_data 2021-05-26 22:45:46 +01:00
smp_plat.h arm64: Add missing header <asm/smp.h> in two files 2021-07-12 13:37:34 +01:00
sparsemem.h arm64: Force SPARSEMEM_VMEMMAP as the only memory management model 2021-04-23 14:18:21 +01:00
spectre.h Merge remote-tracking branch 'origin/kvm-arm64/csv3' into kvmarm-master/queue 2020-12-03 19:12:24 +00:00
spinlock.h locking/arch: Move qrwlock.h include after qspinlock.h 2021-02-11 07:59:54 -05:00
spinlock_types.h
stack_pointer.h
stackprotector.h arm64: Defer enabling pointer authentication on boot core 2021-02-09 13:50:57 +00:00
stacktrace.h arm64: stacktrace: fix comment 2021-08-03 10:39:35 +01:00
stage2_pgtable.h KVM: arm64: Remove unused page-table code 2020-09-11 15:51:15 +01:00
stat.h
string.h arm64: Mitigate MTE issues with str{n}cmp() 2021-09-21 14:50:19 +01:00
suspend.h arm64: Preserve register x18 when CPU is suspended 2020-05-15 16:35:50 +01:00
sync_bitops.h
syscall.h arm64: fix compat syscall return truncation 2021-08-03 10:35:03 +01:00
syscall_wrapper.h arm64: simplify syscall wrapper ifdeffery 2019-10-14 10:55:00 +01:00
sysreg.h ARM: 2021-09-07 13:40:51 -07:00
system_misc.h ARM: 9095/1: ARM64: Remove arm_pm_restart() 2021-06-13 18:16:47 +01:00
thread_info.h arm64/process.c: fix Wmissing-prototypes build warnings 2021-03-25 09:50:16 +00:00
timex.h
tlb.h arm64: tlb: fix the TTL value of tlb_get_level 2021-06-23 14:52:57 +01:00
tlbflush.h arm64: mm: Fix TLBI vs ASID rollover 2021-08-06 13:52:03 +01:00
topology.h arch_topology: Allow multiple entities to provide sched_freq_tick() callback 2021-03-10 10:55:37 +05:30
trans_pgd.h arm64: trans_pgd: hibernate: idmap the single page that holds the copy page routines 2021-01-27 15:41:12 +00:00
traps.h arm64: expose FAR_EL1 tag bits in siginfo 2020-11-23 18:17:39 +00:00
uaccess.h arm64: uaccess: avoid blocking within critical sections 2021-12-01 09:04:51 +01:00
unistd.h mm: wire up syscall process_mrelease 2021-09-03 09:58:17 -07:00
unistd32.h compat: remove some compat entry points 2021-09-08 15:32:35 -07:00
uprobes.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
vdso.h arm64/vdso: Add time namespace page 2020-07-24 13:15:20 +01:00
vermagic.h arch: split MODULE_ARCH_VERMAGIC definitions out to <asm/vermagic.h> 2020-04-23 10:50:26 +09:00
virt.h arm64: Provide an 'upgrade to VHE' stub hypercall 2021-02-08 12:51:26 +00:00
vmalloc.h mm/vmalloc: provide fallback arch huge vmap support functions 2021-04-30 11:20:40 -07:00
vmap_stack.h mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
word-at-a-time.h arm64 updates for 5.13: 2021-04-26 10:25:03 -07:00
xor.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00