From: David S. Miller Date: Thu, 1 Jun 2017 02:35:00 +0000 (-0700) Subject: bpf: Take advantage of stack_depth tracking in sparc64 JIT X-Git-Tag: v4.13-rc1~157^2~327 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=a5e2ee5da47412c98b023acb49d0787e40e4ec6a;p=linux.git bpf: Take advantage of stack_depth tracking in sparc64 JIT Signed-off-by: David S. Miller --- diff --git a/arch/sparc/net/bpf_jit_comp_64.c b/arch/sparc/net/bpf_jit_comp_64.c index 4a52d34facf9..098874a81f6e 100644 --- a/arch/sparc/net/bpf_jit_comp_64.c +++ b/arch/sparc/net/bpf_jit_comp_64.c @@ -802,8 +802,13 @@ static void build_prologue(struct jit_ctx *ctx) { s32 stack_needed = BASE_STACKFRAME; - if (ctx->saw_frame_pointer || ctx->saw_tail_call) - stack_needed += MAX_BPF_STACK; + if (ctx->saw_frame_pointer || ctx->saw_tail_call) { + struct bpf_prog *prog = ctx->prog; + u32 stack_depth; + + stack_depth = prog->aux->stack_depth; + stack_needed += round_up(stack_depth, 16); + } if (ctx->saw_tail_call) stack_needed += 8;