Lines Matching defs:compatible
4345 const struct bpf_reg_types *compatible;
4348 compatible = compatible_reg_types[base_type(arg_type)];
4349 if (!compatible) {
4354 /* ARG_PTR_TO_MEM + RDONLY is compatible with PTR_TO_MEM and PTR_TO_MEM + RDONLY,
4355 * but ARG_PTR_TO_MEM is compatible only with PTR_TO_MEM and NOT with PTR_TO_MEM + RDONLY
4359 * ARG_PTR_TO_MEM + MAYBE_NULL is compatible with PTR_TO_MEM and PTR_TO_MEM + MAYBE_NULL,
4360 * but ARG_PTR_TO_MEM is compatible only with PTR_TO_MEM but NOT with PTR_TO_MEM + MAYBE_NULL
4371 for (i = 0; i < ARRAY_SIZE(compatible->types); i++) {
4372 expected = compatible->types[i];
4384 verbose(env, "%s, ", reg_type_str(env, compatible->types[j]));
4386 verbose(env, "%s\n", reg_type_str(env, compatible->types[j]));
4392 if (!compatible->btf_id) {
4393 verbose(env, "verifier internal error: missing arg compatible BTF ID\n");
4396 arg_btf_id = compatible->btf_id;
5330 /* eBPF programs must be GPL compatible to use GPL-ed functions */
5332 verbose(env, "cannot call GPL-restricted function from non-GPL compatible program\n");
11750 verbose(env, "struct ops programs must have a GPL compatible license\n");