diff options
Diffstat (limited to 'arch/arm64/net/bpf_jit_comp.c')
| -rw-r--r-- | arch/arm64/net/bpf_jit_comp.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm64/net/bpf_jit_comp.c b/arch/arm64/net/bpf_jit_comp.c index ab83089c3d8f..0c9a50a1e73e 100644 --- a/arch/arm64/net/bpf_jit_comp.c +++ b/arch/arm64/net/bpf_jit_comp.c @@ -1213,6 +1213,7 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx,  	u8 src = bpf2a64[insn->src_reg];  	const u8 tmp = bpf2a64[TMP_REG_1];  	const u8 tmp2 = bpf2a64[TMP_REG_2]; +	const u8 tmp3 = bpf2a64[TMP_REG_3];  	const u8 fp = bpf2a64[BPF_REG_FP];  	const u8 arena_vm_base = bpf2a64[ARENA_VM_START];  	const u8 priv_sp = bpf2a64[PRIVATE_SP]; @@ -1757,8 +1758,8 @@ emit_cond_jmp:  	case BPF_ST | BPF_PROBE_MEM32 | BPF_W:  	case BPF_ST | BPF_PROBE_MEM32 | BPF_DW:  		if (BPF_MODE(insn->code) == BPF_PROBE_MEM32) { -			emit(A64_ADD(1, tmp2, dst, arena_vm_base), ctx); -			dst = tmp2; +			emit(A64_ADD(1, tmp3, dst, arena_vm_base), ctx); +			dst = tmp3;  		}  		if (dst == fp) {  			dst_adj = ctx->priv_sp_used ? priv_sp : A64_SP;  | 
