diff options
author | David S. Miller <davem@davemloft.net> | 2017-05-31 22:35:00 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-05-31 22:35:00 -0400 |
commit | a5e2ee5da47412c98b023acb49d0787e40e4ec6a (patch) | |
tree | d62a0564b8fd44b3b9590a0c010445ec6bd331bf /arch/sparc | |
parent | 551f40c42f02000077a6cc5416bfe213052dbbf0 (diff) |
bpf: Take advantage of stack_depth tracking in sparc64 JIT
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/net/bpf_jit_comp_64.c | 9 |
1 files changed, 7 insertions, 2 deletions
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) | |||
802 | { | 802 | { |
803 | s32 stack_needed = BASE_STACKFRAME; | 803 | s32 stack_needed = BASE_STACKFRAME; |
804 | 804 | ||
805 | if (ctx->saw_frame_pointer || ctx->saw_tail_call) | 805 | if (ctx->saw_frame_pointer || ctx->saw_tail_call) { |
806 | stack_needed += MAX_BPF_STACK; | 806 | struct bpf_prog *prog = ctx->prog; |
807 | u32 stack_depth; | ||
808 | |||
809 | stack_depth = prog->aux->stack_depth; | ||
810 | stack_needed += round_up(stack_depth, 16); | ||
811 | } | ||
807 | 812 | ||
808 | if (ctx->saw_tail_call) | 813 | if (ctx->saw_tail_call) |
809 | stack_needed += 8; | 814 | stack_needed += 8; |