aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/arch/riscv/include/asm/pgtable.h
diff options
context:
space:
mode:
authorBjörn Töpel <bjorn.topel@gmail.com>2019-12-16 10:13:40 +0100
committerDaniel Borkmann <daniel@iogearbox.net>2019-12-19 16:03:31 +0100
commit7f3631e88ee6fb13beac333a0e9e605d2414d17f (patch)
tree83de14e24c5f18b8d1197c815df60556471a37f6 /arch/riscv/include/asm/pgtable.h
parentriscv, bpf: Optimize BPF tail calls (diff)
downloadwireguard-linux-7f3631e88ee6fb13beac333a0e9e605d2414d17f.tar.xz
wireguard-linux-7f3631e88ee6fb13beac333a0e9e605d2414d17f.zip
riscv, bpf: Provide RISC-V specific JIT image alloc/free
This commit makes sure that the JIT images is kept close to the kernel text, so BPF calls can use relative calling with auipc/jalr or jal instead of loading the full 64-bit address and jalr. The BPF JIT image region is 128 MB before the kernel text. Signed-off-by: Björn Töpel <bjorn.topel@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Link: https://lore.kernel.org/bpf/20191216091343.23260-7-bjorn.topel@gmail.com
Diffstat (limited to 'arch/riscv/include/asm/pgtable.h')
-rw-r--r--arch/riscv/include/asm/pgtable.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h
index 7ff0ed4f292e..cc3f49415620 100644
--- a/arch/riscv/include/asm/pgtable.h
+++ b/arch/riscv/include/asm/pgtable.h
@@ -404,6 +404,10 @@ static inline int ptep_clear_flush_young(struct vm_area_struct *vma,
#define VMALLOC_END (PAGE_OFFSET - 1)
#define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE)
+#define BPF_JIT_REGION_SIZE (SZ_128M)
+#define BPF_JIT_REGION_START (PAGE_OFFSET - BPF_JIT_REGION_SIZE)
+#define BPF_JIT_REGION_END (VMALLOC_END)
+
/*
* Roughly size the vmemmap space to be large enough to fit enough
* struct pages to map half the virtual address space. Then