diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c index 8d69604202bc..6575f5a3287f 100644 --- a/kernel/bpf/core.c +++ b/kernel/bpf/core.c @@ -634,6 +634,16 @@ bool __weak arch_bpf_jit_check_func(const struct bpf_prog *prog) EXPORT_SYMBOL_GPL(arch_bpf_jit_check_func); #endif +void *__weak bpf_jit_alloc_exec(unsigned long size) +{ + return module_alloc(size); +} + +void __weak bpf_jit_free_exec(void *addr) +{ + module_memfree(addr); +} + struct bpf_binary_header * bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr, unsigned int alignment, @@ -651,7 +661,7 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr, if (bpf_jit_charge_modmem(pages)) return NULL; - hdr = module_alloc(size); + hdr = bpf_jit_alloc_exec(size); if (!hdr) { bpf_jit_uncharge_modmem(pages); return NULL; @@ -676,7 +686,7 @@ void bpf_jit_binary_free(struct bpf_binary_header *hdr) { u32 pages = hdr->pages; - module_memfree(hdr); + bpf_jit_free_exec(hdr); bpf_jit_uncharge_modmem(pages); }