powerpc/bpf: implement bpf_arch_text_invalidate for bpf_prog_pack

Implement bpf_arch_text_invalidate and use it to fill unused part of
the bpf_prog_pack with trap instructions when a BPF program is freed.

Signed-off-by: Hari Bathini <hbathini@linux.ibm.com>
Acked-by: Song Liu <song@kernel.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20231020141358.643575-4-hbathini@linux.ibm.com
This commit is contained in:
Hari Bathini 2023-10-20 19:43:56 +05:30 committed by Michael Ellerman
parent 6efc1675ac
commit 033ffaf0af

View File

@ -292,3 +292,18 @@ void *bpf_arch_text_copy(void *dst, void *src, size_t len)
return err ? ERR_PTR(err) : dst;
}
int bpf_arch_text_invalidate(void *dst, size_t len)
{
u32 insn = BREAKPOINT_INSTRUCTION;
int ret;
if (WARN_ON_ONCE(core_kernel_text((unsigned long)dst)))
return -EINVAL;
mutex_lock(&text_mutex);
ret = patch_instructions(dst, &insn, len, true);
mutex_unlock(&text_mutex);
return ret;
}