Lines Matching refs:prog
67 const struct bpf_prog *prog; in bpf_prog_run_array_cg() local
79 while ((prog = READ_ONCE(item->prog))) { in bpf_prog_run_array_cg()
81 func_ret = run_prog(prog, ctx); in bpf_prog_run_array_cg()
239 struct bpf_prog *prog, in bpf_cgroup_storages_alloc() argument
250 map = prog->aux->cgroup_storage[stype]; in bpf_cgroup_storages_alloc()
258 storages[stype] = bpf_cgroup_storage_alloc(prog, stype); in bpf_cgroup_storages_alloc()
324 if (pl->prog) { in cgroup_bpf_release()
325 if (pl->prog->expected_attach_type == BPF_LSM_CGROUP) in cgroup_bpf_release()
326 bpf_trampoline_unlink_cgroup_shim(pl->prog); in cgroup_bpf_release()
327 bpf_prog_put(pl->prog); in cgroup_bpf_release()
330 if (pl->link->link.prog->expected_attach_type == BPF_LSM_CGROUP) in cgroup_bpf_release()
331 bpf_trampoline_unlink_cgroup_shim(pl->link->link.prog); in cgroup_bpf_release()
375 if (pl->prog) in prog_list_prog()
376 return pl->prog; in prog_list_prog()
378 return pl->link->link.prog; in prog_list_prog()
475 item->prog = prog_list_prog(pl); in compute_effective_progs()
624 struct bpf_prog *prog, in find_attach_entry() argument
639 if (prog && pl->prog == prog && prog != replace_prog) in find_attach_entry()
650 if (pl->prog == replace_prog) in find_attach_entry()
674 struct bpf_prog *prog = ERR_PTR(-EINVAL); in bpf_get_anchor_prog() local
677 prog = bpf_prog_by_id(id_or_fd); in bpf_get_anchor_prog()
679 prog = bpf_prog_get(id_or_fd); in bpf_get_anchor_prog()
680 return prog; in bpf_get_anchor_prog()
683 static struct bpf_prog_list *get_prog_list(struct hlist_head *progs, struct bpf_prog *prog, in get_prog_list() argument
699 if ((is_link && !link) || (!is_link && !prog)) in get_prog_list()
733 if ((anchor_prog && anchor_prog == pltmp->prog) || in get_prog_list()
752 struct bpf_prog *prog, struct bpf_cgroup_link *link, in insert_pl_to_hlist() argument
757 pltmp = get_prog_list(progs, prog, link, flags, id_or_fd); in insert_pl_to_hlist()
787 struct bpf_prog *prog, struct bpf_prog *replace_prog, in __cgroup_bpf_attach() argument
796 struct bpf_prog *new_prog = prog ? : link->link.prog; in __cgroup_bpf_attach()
809 if (link && (prog || replace_prog)) in __cgroup_bpf_attach()
837 pl = find_attach_entry(progs, prog, link, replace_prog, in __cgroup_bpf_attach()
843 prog ? : link->link.prog, cgrp)) in __cgroup_bpf_attach()
847 old_prog = pl->prog; in __cgroup_bpf_attach()
855 err = insert_pl_to_hlist(pl, progs, prog, link, flags, id_or_fd); in __cgroup_bpf_attach()
863 pl->prog = prog; in __cgroup_bpf_attach()
896 pl->prog = old_prog; in __cgroup_bpf_attach()
908 struct bpf_prog *prog, struct bpf_prog *replace_prog, in cgroup_bpf_attach() argument
916 ret = __cgroup_bpf_attach(cgrp, prog, replace_prog, link, type, flags, in cgroup_bpf_attach()
963 WRITE_ONCE(item->prog, link->link.prog); in replace_effective_prog()
993 if (link->link.prog->type != new_prog->type) in __cgroup_bpf_replace()
1006 old_prog = xchg(&link->link.prog, new_prog); in __cgroup_bpf_replace()
1026 if (old_prog && link->prog != old_prog) { in cgroup_bpf_replace()
1037 struct bpf_prog *prog, in find_detach_entry() argument
1054 if (!prog && !link) in find_detach_entry()
1062 if (pl->prog == prog && pl->link == link) in find_detach_entry()
1078 static void purge_effective_progs(struct cgroup *cgrp, struct bpf_prog *prog, in purge_effective_progs() argument
1105 if (pl->prog == prog && pl->link == link) in purge_effective_progs()
1136 static int __cgroup_bpf_detach(struct cgroup *cgrp, struct bpf_prog *prog, in __cgroup_bpf_detach() argument
1147 if (prog) in __cgroup_bpf_detach()
1148 attach_btf_id = prog->aux->attach_btf_id; in __cgroup_bpf_detach()
1150 attach_btf_id = link->link.prog->aux->attach_btf_id; in __cgroup_bpf_detach()
1162 if (prog && link) in __cgroup_bpf_detach()
1166 pl = find_detach_entry(progs, prog, link, flags & BPF_F_ALLOW_MULTI); in __cgroup_bpf_detach()
1171 old_prog = pl->prog; in __cgroup_bpf_detach()
1172 pl->prog = NULL; in __cgroup_bpf_detach()
1177 pl->prog = old_prog; in __cgroup_bpf_detach()
1199 static int cgroup_bpf_detach(struct cgroup *cgrp, struct bpf_prog *prog, in cgroup_bpf_detach() argument
1205 ret = __cgroup_bpf_detach(cgrp, prog, NULL, type, revision); in cgroup_bpf_detach()
1283 struct bpf_prog *prog; in __cgroup_bpf_query() local
1290 prog = prog_list_prog(pl); in __cgroup_bpf_query()
1291 id = prog->aux->id; in __cgroup_bpf_query()
1327 enum bpf_prog_type ptype, struct bpf_prog *prog) in cgroup_bpf_prog_attach() argument
1346 ret = cgroup_bpf_attach(cgrp, prog, replace_prog, NULL, in cgroup_bpf_prog_attach()
1358 struct bpf_prog *prog; in cgroup_bpf_prog_detach() local
1366 prog = bpf_prog_get_type(attr->attach_bpf_fd, ptype); in cgroup_bpf_prog_detach()
1367 if (IS_ERR(prog)) in cgroup_bpf_prog_detach()
1368 prog = NULL; in cgroup_bpf_prog_detach()
1370 ret = cgroup_bpf_detach(cgrp, prog, attr->attach_type, attr->expected_revision); in cgroup_bpf_prog_detach()
1371 if (prog) in cgroup_bpf_prog_detach()
1372 bpf_prog_put(prog); in cgroup_bpf_prog_detach()
1401 bpf_trampoline_unlink_cgroup_shim(cg_link->link.prog); in bpf_cgroup_link_release()
1478 int cgroup_bpf_link_attach(const union bpf_attr *attr, struct bpf_prog *prog) in cgroup_bpf_link_attach() argument
1498 prog, attr->link_create.attach_type); in cgroup_bpf_link_attach()
1819 cgroup_dev_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in cgroup_dev_func_proto() argument
1823 func_proto = cgroup_common_func_proto(func_id, prog); in cgroup_dev_func_proto()
1831 return bpf_base_func_proto(func_id, prog); in cgroup_dev_func_proto()
1837 const struct bpf_prog *prog, in cgroup_dev_is_valid_access() argument
2366 sysctl_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in sysctl_func_proto() argument
2370 func_proto = cgroup_common_func_proto(func_id, prog); in sysctl_func_proto()
2388 return bpf_base_func_proto(func_id, prog); in sysctl_func_proto()
2393 const struct bpf_prog *prog, in sysctl_is_valid_access() argument
2422 struct bpf_prog *prog, u32 *target_size) in sysctl_convert_ctx_access() argument
2509 cg_sockopt_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in cg_sockopt_func_proto() argument
2513 func_proto = cgroup_common_func_proto(func_id, prog); in cg_sockopt_func_proto()
2526 if (prog->expected_attach_type == BPF_CGROUP_SETSOCKOPT) in cg_sockopt_func_proto()
2530 if (prog->expected_attach_type == BPF_CGROUP_SETSOCKOPT) in cg_sockopt_func_proto()
2541 return bpf_base_func_proto(func_id, prog); in cg_sockopt_func_proto()
2547 const struct bpf_prog *prog, in cg_sockopt_is_valid_access() argument
2563 return prog->expected_attach_type == in cg_sockopt_is_valid_access()
2570 return prog->expected_attach_type == in cg_sockopt_is_valid_access()
2598 return prog->expected_attach_type == BPF_CGROUP_GETSOCKOPT; in cg_sockopt_is_valid_access()
2622 struct bpf_prog *prog, in cg_sockopt_convert_ctx_access() argument
2699 const struct bpf_prog *prog) in cg_sockopt_get_prologue() argument
2718 cgroup_common_func_proto(enum bpf_func_id func_id, const struct bpf_prog *prog) in cgroup_common_func_proto() argument
2724 switch (prog->expected_attach_type) { in cgroup_common_func_proto()
2742 switch (prog->expected_attach_type) { in cgroup_common_func_proto()