On Tue, Jan 12, 2021 at 1:39 PM Brendan Jackman <jackmanb@xxxxxxxxxx> wrote: > > The error message here is misleading, the argument will be rejected > unless it is a known constant. > > Signed-off-by: Brendan Jackman <jackmanb@xxxxxxxxxx> > --- > kernel/bpf/verifier.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c > index 17270b8404f1..5534e667bdb1 100644 > --- a/kernel/bpf/verifier.c > +++ b/kernel/bpf/verifier.c > @@ -4319,7 +4319,7 @@ static int check_func_arg(struct bpf_verifier_env *env, u32 arg, > err = mark_chain_precision(env, regno); > } else if (arg_type_is_alloc_size(arg_type)) { > if (!tnum_is_const(reg->var_off)) { > - verbose(env, "R%d unbounded size, use 'var &= const' or 'if (var < const)'\n", Can you check if: int var = 1000; var += 1; if (var < 2000) // call helper and then using var in the argument works? If so, the existing error message would be correct. > + verbose(env, "R%d is not a known constant'\n", > regno); > return -EACCES; > } > > base-commit: e22d7f05e445165e58feddb4e40cc9c0f94453bc > -- > 2.30.0.284.gd98b1dd5eaa7-goog >