Lines Matching defs:kptr

311 	 * generally to pass info about user-defined local kptr types to later
314 * Record the local kptr type to be drop'd
316 * Record the local kptr type to be refcount_incr'd and use
5203 const char *targ_name = btf_type_name(kptr_field->kptr.btf, kptr_field->kptr.btf_id);
5227 * normal store of unreferenced kptr, we must ensure var_off is zero.
5259 kptr_field->kptr.btf, kptr_field->kptr.btf_id,
5264 verbose(env, "invalid kptr access, R%d type=%s%s ", regno,
5313 if (btf_is_kernel(kptr_field->kptr.btf))
5316 meta = btf_find_struct_meta(kptr_field->kptr.btf,
5317 kptr_field->kptr.btf_id);
5324 const struct btf_field_kptr *kptr = &field->kptr;
5327 (field->type == BPF_KPTR_REF && rcu_protected_object(kptr->btf, kptr->btf_id));
5340 else if (!btf_is_kernel(kptr_field->kptr.btf))
5362 * - Reject cases where variable offset may touch kptr
5369 verbose(env, "kptr in map can only be accessed using BPF_MEM instruction mode\n");
5373 /* We only allow loading referenced kptr, since it will be marked as
5374 * untrusted, similar to unreferenced kptr.
5378 verbose(env, "store to referenced kptr disallowed\n");
5387 mark_btf_ld_reg(env, cur_regs(env), value_regno, PTR_TO_BTF_ID, kptr_field->kptr.btf,
5388 kptr_field->kptr.btf_id, btf_ld_kptr_type(env, kptr_field));
5398 verbose(env, "BPF_ST imm must be 0 when storing to kptr at off=%u\n",
5403 verbose(env, "kptr in map can only be accessed using BPF_LDX/BPF_STX/BPF_ST\n");
5444 verbose(env, "kptr cannot be accessed indirectly by helper\n");
5448 verbose(env, "kptr access cannot have variable offset\n");
5452 verbose(env, "kptr access misaligned expected=%u off=%llu\n",
5457 verbose(env, "kptr access size must be BPF_DW\n");
7511 map ? map->name : "kptr");
7603 "R%d doesn't have constant offset. kptr has to be at the constant offset\n",
7613 verbose(env, "map '%s' has no valid kptr\n", map_ptr->name);
7621 verbose(env, "off=%d doesn't point to kptr\n", kptr_off);
7625 verbose(env, "off=%d kptr isn't referenced kptr\n", kptr_off);
10586 ret_btf = meta.kptr_field->kptr.btf;
10587 ret_btf_id = meta.kptr_field->kptr.btf_id;
10948 KF_ARG_PTR_TO_REFCOUNTED_KPTR, /* Refcounted local kptr */