projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7729b05
)
arm64: bpf: fix JIT frame pointer setup
author
Yang Shi
<
[email protected]
>
Thu, 12 Nov 2015 21:57:00 +0000
(13:57 -0800)
committer
David S. Miller
<
[email protected]
>
Mon, 16 Nov 2015 19:38:42 +0000
(14:38 -0500)
BPF fp should point to the top of the BPF prog stack. The original
implementation made it point to the bottom incorrectly.
Move A64_SP to fp before reserve BPF prog stack space.
CC: Zi Shen Lim <
[email protected]
>
CC: Xi Wang <
[email protected]
>
Signed-off-by: Yang Shi <
[email protected]
>
Reviewed-by: Zi Shen Lim <
[email protected]
>
Signed-off-by: David S. Miller <
[email protected]
>
arch/arm64/net/bpf_jit_comp.c
patch
|
blob
|
history
diff --git
a/arch/arm64/net/bpf_jit_comp.c
b/arch/arm64/net/bpf_jit_comp.c
index a44e5293c6f58adb288e9c0d0549fcbe26c98daa..ac8b548ce4939fa949a9d2473bf580f383e296e2 100644
(file)
--- a/
arch/arm64/net/bpf_jit_comp.c
+++ b/
arch/arm64/net/bpf_jit_comp.c
@@
-161,12
+161,12
@@
static void build_prologue(struct jit_ctx *ctx)
if (ctx->tmp_used)
emit(A64_PUSH(tmp1, tmp2, A64_SP), ctx);
- /* Set up BPF stack */
- emit(A64_SUB_I(1, A64_SP, A64_SP, stack_size), ctx);
-
/* Set up frame pointer */
emit(A64_MOV(1, fp, A64_SP), ctx);
+ /* Set up BPF stack */
+ emit(A64_SUB_I(1, A64_SP, A64_SP, stack_size), ctx);
+
/* Clear registers A and X */
emit_a64_mov_i64(ra, 0, ctx);
emit_a64_mov_i64(rx, 0, ctx);