Lines Matching defs:aux
540 spin_lock(&array->aux->owner.lock);
541 type = array->aux->owner.type;
542 jited = array->aux->owner.jited;
543 spin_unlock(&array->aux->owner.lock);
1634 if (!bpf_prog_is_dev_bound(prog->aux)) {
1635 prog->aux->ops = ops;
1637 prog->aux->ops = &bpf_offload_prog_ops;
1672 audit_log_format(ab, "prog-id=%u op=%s", prog->aux->id, bpf_audit_str[op]);
1710 prog->aux->user = user;
1716 struct user_struct *user = prog->aux->user;
1730 prog->aux->id = id;
1750 if (!prog->aux->id) {
1760 idr_remove(&prog_idr, prog->aux->id);
1761 prog->aux->id = 0;
1772 struct bpf_prog_aux *aux = container_of(rcu, struct bpf_prog_aux, rcu);
1774 kvfree(aux->func_info);
1775 kfree(aux->func_info_aux);
1776 bpf_prog_uncharge_memlock(aux->prog);
1777 security_bpf_prog_free(aux);
1778 bpf_prog_free(aux->prog);
1784 btf_put(prog->aux->btf);
1788 if (prog->aux->sleepable) {
1789 call_rcu_tasks_trace(&prog->aux->rcu, _bpf_prog_put_rcu);
1791 call_rcu(&prog->aux->rcu, _bpf_prog_put_rcu);
1794 _bpf_prog_put_rcu(&prog->aux->rcu);
1800 if (atomic64_dec_and_test(&prog->aux->refcnt)) {
1834 st = per_cpu_ptr(prog->aux->stats, cpu);
1864 prog->type, prog->jited, prog_tag, prog->pages * 1ULL << PAGE_SHIFT, prog->aux->id, stats.nsecs,
1905 atomic64_add(i, &prog->aux->refcnt);
1916 WARN_ON(atomic64_sub_return(i, &prog->aux->refcnt) == 0);
1922 atomic64_inc(&prog->aux->refcnt);
1931 refold = atomic64_fetch_add_unless(&prog->aux->refcnt, 1, 0);
1950 if (bpf_prog_is_dev_bound(prog->aux) && !attach_drv) {
2204 prog->aux->attach_btf_id = attr->attach_btf_id;
2213 prog->aux->dst_prog = dst_prog;
2216 prog->aux->offload_requested = !!attr->prog_ifindex;
2217 prog->aux->sleepable = attr->prog_flags & BPF_F_SLEEPABLE;
2219 err = security_bpf_prog_alloc(prog->aux);
2239 atomic64_set(&prog->aux->refcnt, 1);
2242 if (bpf_prog_is_dev_bound(prog->aux)) {
2255 prog->aux->load_time = ktime_get_boottime_ns();
2256 err = bpf_obj_name_cpy(prog->aux->name, attr->prog_name, sizeof(attr->prog_name));
2306 _bpf_prog_put_noref(prog, prog->aux->func_cnt);
2311 security_bpf_prog_free(prog->aux);
2447 bpf_link_type_strs[link->type], link->id, prog_tag, prog->aux->id);
2671 mutex_lock(&prog->aux->dst_mutex);
2675 * - if prog->aux->dst_trampoline is set, the program was just loaded
2677 * in prog->aux
2679 * - if prog->aux->dst_trampoline is NULL, the program has already been
2686 * raw_tracepoint_open API, and we need a target from prog->aux
2688 * The combination of no saved target in prog->aux, and no target
2691 if (!prog->aux->dst_trampoline && !tgt_prog) {
2696 if (!prog->aux->dst_trampoline || (key && key != prog->aux->dst_trampoline->key)) {
2719 * prog->aux are cleared below.
2721 tr = prog->aux->dst_trampoline;
2722 tgt_prog = prog->aux->dst_prog;
2740 /* Always clear the trampoline and target prog from prog->aux to make
2744 if (prog->aux->dst_prog && (tgt_prog_fd || tr != prog->aux->dst_trampoline)) {
2746 bpf_prog_put(prog->aux->dst_prog);
2748 if (prog->aux->dst_trampoline && tr != prog->aux->dst_trampoline) {
2750 bpf_trampoline_put(prog->aux->dst_trampoline);
2753 prog->aux->dst_prog = NULL;
2754 prog->aux->dst_trampoline = NULL;
2755 mutex_unlock(&prog->aux->dst_mutex);
2759 if (tr && tr != prog->aux->dst_trampoline) {
2762 mutex_unlock(&prog->aux->dst_mutex);
2875 tp_name = prog->aux->attach_func_name;
3175 if (prog->aux->ops->test_run) {
3176 ret = prog->aux->ops->test_run(prog, attr, uattr);
3352 mutex_lock(&prog->aux->used_maps_mutex);
3353 for (i = 0, *off = 0; i < prog->aux->used_map_cnt; i++) {
3354 map = prog->aux->used_maps[i];
3370 mutex_unlock(&prog->aux->used_maps_mutex);
3482 info.id = prog->aux->id;
3483 info.load_time = prog->aux->load_time;
3484 info.created_by_uid = from_kuid_munged(current_user_ns(), prog->aux->user->uid);
3488 memcpy(info.name, prog->aux->name, sizeof(prog->aux->name));
3490 mutex_lock(&prog->aux->used_maps_mutex);
3492 info.nr_map_ids = prog->aux->used_map_cnt;
3499 if (put_user(prog->aux->used_maps[i]->id, &user_map_ids[i])) {
3500 mutex_unlock(&prog->aux->used_maps_mutex);
3505 mutex_unlock(&prog->aux->used_maps_mutex);
3550 if (bpf_prog_is_dev_bound(prog->aux)) {
3563 if (prog->aux->func_cnt) {
3567 for (i = 0; i < prog->aux->func_cnt; i++) {
3568 info.jited_prog_len += prog->aux->func[i]->jited_len;
3582 if (prog->aux->func_cnt) {
3587 for (i = 0; i < prog->aux->func_cnt; i++) {
3588 len = prog->aux->func[i]->jited_len;
3590 img = (u8 *)prog->aux->func[i]->bpf_func;
3611 info.nr_jited_ksyms = prog->aux->func_cnt ?: 1;
3623 if (prog->aux->func_cnt) {
3625 ksym_addr = (unsigned long)prog->aux->func[i]->bpf_func;
3642 info.nr_jited_func_lens = prog->aux->func_cnt ?: 1;
3651 if (prog->aux->func_cnt) {
3653 func_len = prog->aux->func[i]->jited_len;
3669 if (prog->aux->btf) {
3670 info.btf_id = btf_id(prog->aux->btf);
3674 info.nr_func_info = prog->aux->func_info_cnt;
3680 if (copy_to_user(user_finfo, prog->aux->func_info, info.func_info_rec_size * ulen)) {
3686 info.nr_line_info = prog->aux->nr_linfo;
3692 if (copy_to_user(user_linfo, prog->aux->linfo, info.line_info_rec_size * ulen)) {
3698 if (prog->aux->jited_linfo) {
3699 info.nr_jited_line_info = prog->aux->nr_linfo;
3711 if (put_user((__u64)(long)prog->aux->jited_linfo[i], &user_linfo[i])) {
3721 info.nr_prog_tags = prog->aux->func_cnt ?: 1;
3728 if (prog->aux->func_cnt) {
3730 if (copy_to_user(user_prog_tags[i], prog->aux->func[i]->tag, BPF_TAG_SIZE)) {
3829 info.prog_id = link->prog->aux->id;
4014 err = bpf_task_fd_query_copy(attr, uattr, raw_tp->link.prog->aux->id, BPF_FD_TYPE_RAW_TRACEPOINT,
4428 mutex_lock(&prog->aux->used_maps_mutex);
4430 used_maps_old = prog->aux->used_maps;
4432 for (i = 0; i < prog->aux->used_map_cnt; i++) {
4439 used_maps_new = kmalloc_array(prog->aux->used_map_cnt + 1, sizeof(used_maps_new[0]), GFP_KERNEL);
4445 memcpy(used_maps_new, used_maps_old, sizeof(used_maps_old[0]) * prog->aux->used_map_cnt);
4446 used_maps_new[prog->aux->used_map_cnt] = map;
4448 prog->aux->used_map_cnt++;
4449 prog->aux->used_maps = used_maps_new;
4454 mutex_unlock(&prog->aux->used_maps_mutex);