[PATCH bpf-next] bpf: arm64: Replace STACK_ALIGN() with round_up() to align stack size

Subsystems: arm64 port (aarch64 architecture), bpf jit for arm64, bpf [general] (safe dynamic programs and tools), the rest

STALE1912d LANDED

Landed in mainline as 3f2870989f10 on 2021-05-12.

2 messages, 2 authors, 2021-05-12 · open the first message on its own page

[PATCH bpf-next] bpf: arm64: Replace STACK_ALIGN() with round_up() to align stack size

From: Tiezhu Yang <yangtiezhu@loongson.cn>
Date: 2021-05-10 13:02:54

Use the common function round_up() directly to show the align size
explicitly, the function STACK_ALIGN() is needless, remove it.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
 arch/arm64/net/bpf_jit_comp.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c
index f7b1948..81c380f 100644
--- a/arch/arm64/net/bpf_jit_comp.c
+++ b/arch/arm64/net/bpf_jit_comp.c
@@ -178,9 +178,6 @@ static bool is_addsub_imm(u32 imm)
 	return !(imm & ~0xfff) || !(imm & ~0xfff000);
 }
 
-/* Stack must be multiples of 16B */
-#define STACK_ALIGN(sz) (((sz) + 15) & ~15)
-
 /* Tail call offset to jump into */
 #if IS_ENABLED(CONFIG_ARM64_BTI_KERNEL)
 #define PROLOGUE_OFFSET 8
@@ -255,7 +252,7 @@ static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf)
 			emit(A64_BTI_J, ctx);
 	}
 
-	ctx->stack_size = STACK_ALIGN(prog->aux->stack_depth);
+	ctx->stack_size = round_up(prog->aux->stack_depth, 16);
 
 	/* Set up function call stack */
 	emit(A64_SUB_I(1, A64_SP, A64_SP, ctx->stack_size), ctx);
-- 
2.1.0

Re: [PATCH bpf-next] bpf: arm64: Replace STACK_ALIGN() with round_up() to align stack size

From: Daniel Borkmann <daniel@iogearbox.net>
Date: 2021-05-12 22:04:47

On 5/10/21 2:51 PM, Tiezhu Yang wrote:
quoted hunk
Use the common function round_up() directly to show the align size
explicitly, the function STACK_ALIGN() is needless, remove it.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
---
  arch/arm64/net/bpf_jit_comp.c | 5 +----
  1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c
index f7b1948..81c380f 100644
--- a/arch/arm64/net/bpf_jit_comp.c
+++ b/arch/arm64/net/bpf_jit_comp.c
@@ -178,9 +178,6 @@ static bool is_addsub_imm(u32 imm)
  	return !(imm & ~0xfff) || !(imm & ~0xfff000);
  }
  
-/* Stack must be multiples of 16B */
-#define STACK_ALIGN(sz) (((sz) + 15) & ~15)
-
  /* Tail call offset to jump into */
  #if IS_ENABLED(CONFIG_ARM64_BTI_KERNEL)
  #define PROLOGUE_OFFSET 8
@@ -255,7 +252,7 @@ static int build_prologue(struct jit_ctx *ctx, bool ebpf_from_cbpf)
  			emit(A64_BTI_J, ctx);
  	}
  
-	ctx->stack_size = STACK_ALIGN(prog->aux->stack_depth);
+	ctx->stack_size = round_up(prog->aux->stack_depth, 16);
  
Applied, thanks! (I retained the comment wrt stack requirement to have it explicitly stated.)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help