On Fri, Apr 29, 2022 at 05:43:43PM +0800, Chen Zhongjin wrote:
> There is a jump table encoded in ___bpf_prog_run and objtool-arm64
> can't deal with it now. Skip validate it for arm64.
But, but, but, an earlier patch did -fno-jump-tables!
>
> Signed-off-by: Chen Zhongjin <[email protected]>
> ---
> kernel/bpf/core.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
> index 13e9dbeeedf3..d702f1d83176 100644
> --- a/kernel/bpf/core.c
> +++ b/kernel/bpf/core.c
> @@ -2022,6 +2022,9 @@ static u64 ___bpf_prog_run(u64 *regs, const struct bpf_insn *insn)
> BUG_ON(1);
> return 0;
> }
> +#ifdef CONFIG_ARM64
> +STACK_FRAME_NON_STANDARD(___bpf_prog_run);
> +#endif
>
> #define PROG_NAME(stack_size) __bpf_prog_run##stack_size
> #define DEFINE_BPF_PROG_RUN(stack_size) \
> --
> 2.17.1
>
On Fri, Apr 29, 2022 at 01:13:40PM +0200, Peter Zijlstra wrote:
> On Fri, Apr 29, 2022 at 05:43:43PM +0800, Chen Zhongjin wrote:
> > There is a jump table encoded in ___bpf_prog_run and objtool-arm64
> > can't deal with it now. Skip validate it for arm64.
>
> But, but, but, an earlier patch did -fno-jump-tables!
IIRC, -fno-jump-tables is specific to switch statements but this
function has a C-implemented jump table.
--
Josh