diff options
| author | Anay Wadhera <awadhera@berkeley.edu> | 2021-05-20 21:48:47 -0700 |
|---|---|---|
| committer | Michael Bestas <mkbestas@lineageos.org> | 2022-04-19 00:49:39 +0300 |
| commit | af30bb72b074fd04962dff8be110a8c0fc8b14ef (patch) | |
| tree | fd0e36231cf1dc970ad757b1fb929d00c56d8e8d | |
| parent | a2b3af0ff2eb372f675f321130358e04f0fab1c3 (diff) | |
Revert "bpf/verifier: Pass instruction index to check_mem_access() and check_xadd()"
This reverts commit 451624d47005aace4e314b488cb70ba3ee5dcce8.
Signed-off-by: Chatur27 <jasonbright2709@gmail.com>
| -rw-r--r-- | kernel/bpf/verifier.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 060cb8cba56b..4756b88c828e 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -694,7 +694,7 @@ static bool is_ctx_reg(struct verifier_env *env, int regno) * if t==write && value_regno==-1, some unknown value is stored into memory * if t==read && value_regno==-1, don't care what we read from memory */ -static int check_mem_access(struct verifier_env *env, int insn_idx, u32 regno, int off, +static int check_mem_access(struct verifier_env *env, u32 regno, int off, int bpf_size, enum bpf_access_type t, int value_regno) { @@ -758,7 +758,7 @@ static int check_mem_access(struct verifier_env *env, int insn_idx, u32 regno, i return err; } -static int check_xadd(struct verifier_env *env, int insn_idx, struct bpf_insn *insn) +static int check_xadd(struct verifier_env *env, struct bpf_insn *insn) { struct reg_state *regs = env->cur_state.regs; int err; @@ -791,13 +791,13 @@ static int check_xadd(struct verifier_env *env, int insn_idx, struct bpf_insn *i } /* check whether atomic_add can read the memory */ - err = check_mem_access(env, insn_idx, insn->dst_reg, insn->off, + err = check_mem_access(env, insn->dst_reg, insn->off, BPF_SIZE(insn->code), BPF_READ, -1); if (err) return err; /* check whether atomic_add can write into the same memory */ - return check_mem_access(env, insn_idx, insn->dst_reg, insn->off, + return check_mem_access(env, insn->dst_reg, insn->off, BPF_SIZE(insn->code), BPF_WRITE, -1); } @@ -1836,7 +1836,7 @@ static int do_check(struct verifier_env *env) /* check that memory (src_reg + off) is readable, * the state of dst_reg will be updated by this func */ - err = check_mem_access(env, insn_idx, insn->src_reg, insn->off, + err = check_mem_access(env, insn->src_reg, insn->off, BPF_SIZE(insn->code), BPF_READ, insn->dst_reg); if (err) @@ -1875,7 +1875,7 @@ static int do_check(struct verifier_env *env) enum bpf_reg_type *prev_dst_type, dst_reg_type; if (BPF_MODE(insn->code) == BPF_XADD) { - err = check_xadd(env, insn_idx, insn); + err = check_xadd(env, insn); if (err) return err; insn_idx++; @@ -1894,7 +1894,7 @@ static int do_check(struct verifier_env *env) dst_reg_type = regs[insn->dst_reg].type; /* check that memory (dst_reg + off) is writeable */ - err = check_mem_access(env, insn_idx, insn->dst_reg, insn->off, + err = check_mem_access(env, insn->dst_reg, insn->off, BPF_SIZE(insn->code), BPF_WRITE, insn->src_reg); if (err) @@ -1929,7 +1929,7 @@ static int do_check(struct verifier_env *env) } /* check that memory (dst_reg + off) is writeable */ - err = check_mem_access(env, insn_idx, insn->dst_reg, insn->off, + err = check_mem_access(env, insn->dst_reg, insn->off, BPF_SIZE(insn->code), BPF_WRITE, -1); if (err) |
