diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 8edf87e92a0e4ec1a54a37abfc7af43681cff7e2..14f783a190c73aa3724f871e11015006219f3980 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -11546,7 +11546,6 @@ enum { REASON_TYPE = -2, REASON_PATHS = -3, REASON_LIMIT = -4, - REASON_STACK = -5, }; static int retrieve_ptr_limit(const struct bpf_reg_state *ptr_reg, @@ -11742,7 +11741,7 @@ static int sanitize_ptr_alu(struct bpf_verifier_env *env, env->insn_idx); if (!ptr_is_dst_reg && !err) *dst_reg = tmp; - return (err == -ENOMEM || err == -EFAULT) ? REASON_STACK : err; + return err; } static void sanitize_mark_insn_seen(struct bpf_verifier_env *env) @@ -11792,17 +11791,12 @@ static int sanitize_err(struct bpf_verifier_env *env, aux->nospec_v1_result = true; aux->alu_state = 0; return 0; - case REASON_STACK: - verbose(env, "R%d could not be pushed for speculative verification, %s\n", - dst, err); - break; default: - verbose(env, "verifier internal error: unknown reason (%d)\n", - reason); break; } - return -EACCES; + WARN_ON_ONCE(reason >= 0); + return reason; } /* check that stack access falls within stack limits and that 'reg' doesn't