提交 5e0c5610 编写于 作者: M Markos Chandras 提交者: Ralf Baechle

MIPS: net: BPF: Replace RSIZE with SZREG

The RSZIE was used to determine the register width but MIPS
already defines SZREG so use that instead.

Cc: netdev@vger.kernel.org
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Alexei Starovoitov <ast@plumgrid.com>
Cc: Daniel Borkmann <dborkman@redhat.com>
Cc: Hannes Frederic Sowa <hannes@stressinduktion.org>
Cc: linux-kernel@vger.kernel.org
Cc: linux-mips@linux-mips.org
Cc: netdev@vger.kernel.org
Patchwork: http://patchwork.linux-mips.org/patch/10526/Signed-off-by: NMarkos Chandras <markos.chandras@imgtec.com>
Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 ad152bd6
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/string.h> #include <linux/string.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/types.h> #include <linux/types.h>
#include <asm/asm.h>
#include <asm/bitops.h> #include <asm/bitops.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/cpu-features.h> #include <asm/cpu-features.h>
...@@ -60,7 +61,6 @@ ...@@ -60,7 +61,6 @@
* ---------------------------------------------------- * ----------------------------------------------------
*/ */
#define RSIZE (sizeof(unsigned long))
#define ptr typeof(unsigned long) #define ptr typeof(unsigned long)
/* ABI specific return values */ /* ABI specific return values */
...@@ -576,12 +576,12 @@ static void save_bpf_jit_regs(struct jit_ctx *ctx, unsigned offset) ...@@ -576,12 +576,12 @@ static void save_bpf_jit_regs(struct jit_ctx *ctx, unsigned offset)
/* Argument save area */ /* Argument save area */
if (config_enabled(CONFIG_64BIT)) if (config_enabled(CONFIG_64BIT))
/* Bottom of current frame */ /* Bottom of current frame */
real_off = align_sp(offset) - RSIZE; real_off = align_sp(offset) - SZREG;
else else
/* Top of previous frame */ /* Top of previous frame */
real_off = align_sp(offset) + RSIZE; real_off = align_sp(offset) + SZREG;
emit_store_stack_reg(MIPS_R_A0, r_sp, real_off, ctx); emit_store_stack_reg(MIPS_R_A0, r_sp, real_off, ctx);
emit_store_stack_reg(MIPS_R_A1, r_sp, real_off + RSIZE, ctx); emit_store_stack_reg(MIPS_R_A1, r_sp, real_off + SZREG, ctx);
real_off = 0; real_off = 0;
} }
...@@ -592,7 +592,7 @@ static void save_bpf_jit_regs(struct jit_ctx *ctx, unsigned offset) ...@@ -592,7 +592,7 @@ static void save_bpf_jit_regs(struct jit_ctx *ctx, unsigned offset)
if ((sflags >> i) & 0x1) { if ((sflags >> i) & 0x1) {
emit_store_stack_reg(MIPS_R_S0 + i, r_sp, real_off, emit_store_stack_reg(MIPS_R_S0 + i, r_sp, real_off,
ctx); ctx);
real_off += RSIZE; real_off += SZREG;
} }
i++; i++;
tmp_flags >>= 1; tmp_flags >>= 1;
...@@ -601,13 +601,13 @@ static void save_bpf_jit_regs(struct jit_ctx *ctx, unsigned offset) ...@@ -601,13 +601,13 @@ static void save_bpf_jit_regs(struct jit_ctx *ctx, unsigned offset)
/* save return address */ /* save return address */
if (ctx->flags & SEEN_CALL) { if (ctx->flags & SEEN_CALL) {
emit_store_stack_reg(r_ra, r_sp, real_off, ctx); emit_store_stack_reg(r_ra, r_sp, real_off, ctx);
real_off += RSIZE; real_off += SZREG;
} }
/* Setup r_M leaving the alignment gap if necessary */ /* Setup r_M leaving the alignment gap if necessary */
if (ctx->flags & SEEN_MEM) { if (ctx->flags & SEEN_MEM) {
if (real_off % (RSIZE * 2)) if (real_off % (SZREG * 2))
real_off += RSIZE; real_off += SZREG;
emit_long_instr(ctx, ADDIU, r_M, r_sp, real_off); emit_long_instr(ctx, ADDIU, r_M, r_sp, real_off);
} }
} }
...@@ -621,12 +621,12 @@ static void restore_bpf_jit_regs(struct jit_ctx *ctx, ...@@ -621,12 +621,12 @@ static void restore_bpf_jit_regs(struct jit_ctx *ctx,
if (ctx->flags & SEEN_CALL) { if (ctx->flags & SEEN_CALL) {
if (config_enabled(CONFIG_64BIT)) if (config_enabled(CONFIG_64BIT))
/* Bottom of current frame */ /* Bottom of current frame */
real_off = align_sp(offset) - RSIZE; real_off = align_sp(offset) - SZREG;
else else
/* Top of previous frame */ /* Top of previous frame */
real_off = align_sp(offset) + RSIZE; real_off = align_sp(offset) + SZREG;
emit_load_stack_reg(MIPS_R_A0, r_sp, real_off, ctx); emit_load_stack_reg(MIPS_R_A0, r_sp, real_off, ctx);
emit_load_stack_reg(MIPS_R_A1, r_sp, real_off + RSIZE, ctx); emit_load_stack_reg(MIPS_R_A1, r_sp, real_off + SZREG, ctx);
real_off = 0; real_off = 0;
} }
...@@ -638,7 +638,7 @@ static void restore_bpf_jit_regs(struct jit_ctx *ctx, ...@@ -638,7 +638,7 @@ static void restore_bpf_jit_regs(struct jit_ctx *ctx,
if ((sflags >> i) & 0x1) { if ((sflags >> i) & 0x1) {
emit_load_stack_reg(MIPS_R_S0 + i, r_sp, real_off, emit_load_stack_reg(MIPS_R_S0 + i, r_sp, real_off,
ctx); ctx);
real_off += RSIZE; real_off += SZREG;
} }
i++; i++;
tmp_flags >>= 1; tmp_flags >>= 1;
...@@ -658,7 +658,7 @@ static unsigned int get_stack_depth(struct jit_ctx *ctx) ...@@ -658,7 +658,7 @@ static unsigned int get_stack_depth(struct jit_ctx *ctx)
/* How may s* regs do we need to preserved? */ /* How may s* regs do we need to preserved? */
sp_off += hweight32(ctx->flags >> SEEN_SREG_SFT) * RSIZE; sp_off += hweight32(ctx->flags >> SEEN_SREG_SFT) * SZREG;
if (ctx->flags & SEEN_MEM) if (ctx->flags & SEEN_MEM)
sp_off += 4 * BPF_MEMWORDS; /* BPF_MEMWORDS are 32-bit */ sp_off += 4 * BPF_MEMWORDS; /* BPF_MEMWORDS are 32-bit */
...@@ -674,7 +674,7 @@ static unsigned int get_stack_depth(struct jit_ctx *ctx) ...@@ -674,7 +674,7 @@ static unsigned int get_stack_depth(struct jit_ctx *ctx)
* this space ourselves. We need to preserve $ra as well. * this space ourselves. We need to preserve $ra as well.
*/ */
sp_off += config_enabled(CONFIG_64BIT) ? sp_off += config_enabled(CONFIG_64BIT) ?
(ARGS_USED_BY_JIT + 1) * RSIZE : RSIZE; (ARGS_USED_BY_JIT + 1) * SZREG : SZREG;
return sp_off; return sp_off;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册