Lines Matching refs:pl

289 		struct bpf_prog_list *pl;
292 hlist_for_each_entry_safe(pl, pltmp, progs, node) {
293 hlist_del(&pl->node);
294 if (pl->prog) {
295 if (pl->prog->expected_attach_type == BPF_LSM_CGROUP)
296 bpf_trampoline_unlink_cgroup_shim(pl->prog);
297 bpf_prog_put(pl->prog);
299 if (pl->link) {
300 if (pl->link->link.prog->expected_attach_type == BPF_LSM_CGROUP)
301 bpf_trampoline_unlink_cgroup_shim(pl->link->link.prog);
302 bpf_cgroup_link_auto_detach(pl->link);
304 kfree(pl);
343 static struct bpf_prog *prog_list_prog(struct bpf_prog_list *pl)
345 if (pl->prog)
346 return pl->prog;
347 if (pl->link)
348 return pl->link->link.prog;
357 struct bpf_prog_list *pl;
360 hlist_for_each_entry(pl, head, node) {
361 if (!prog_list_prog(pl))
407 struct bpf_prog_list *pl;
429 hlist_for_each_entry(pl, &p->bpf.progs[atype], node) {
430 if (!prog_list_prog(pl))
434 item->prog = prog_list_prog(pl);
436 pl->storage);
562 struct bpf_prog_list *pl;
568 return hlist_entry(progs->first, typeof(*pl), node);
571 hlist_for_each_entry(pl, progs, node) {
572 if (prog && pl->prog == prog && prog != replace_prog)
575 if (link && pl->link == link)
582 hlist_for_each_entry(pl, progs, node) {
583 if (pl->prog == replace_prog)
585 return pl;
618 struct bpf_prog_list *pl;
652 pl = find_attach_entry(progs, prog, link, replace_prog,
654 if (IS_ERR(pl))
655 return PTR_ERR(pl);
661 if (pl) {
662 old_prog = pl->prog;
666 pl = kmalloc(sizeof(*pl), GFP_KERNEL);
667 if (!pl) {
672 hlist_add_head(&pl->node, progs);
677 hlist_add_behind(&pl->node, last);
682 pl->prog = prog;
683 pl->link = link;
684 bpf_cgroup_storages_assign(pl->storage, storage);
713 pl->prog = old_prog;
714 pl->link = NULL;
718 hlist_del(&pl->node);
719 kfree(pl);
748 struct bpf_prog_list *pl;
765 hlist_for_each_entry(pl, head, node) {
766 if (!prog_list_prog(pl))
768 if (pl->link == link)
799 struct bpf_prog_list *pl;
812 hlist_for_each_entry(pl, progs, node) {
813 if (pl->link == link) {
856 struct bpf_prog_list *pl;
866 return hlist_entry(progs->first, typeof(*pl), node);
876 hlist_for_each_entry(pl, progs, node) {
877 if (pl->prog == prog && pl->link == link)
878 return pl;
899 struct bpf_prog_list *pl;
917 hlist_for_each_entry(pl, head, node) {
918 if (!prog_list_prog(pl))
920 if (pl->prog == prog && pl->link == link)
955 struct bpf_prog_list *pl;
976 pl = find_detach_entry(progs, prog, link, flags & BPF_F_ALLOW_MULTI);
977 if (IS_ERR(pl))
978 return PTR_ERR(pl);
981 old_prog = pl->prog;
982 pl->prog = NULL;
983 pl->link = NULL;
987 pl->prog = old_prog;
988 pl->link = link;
993 hlist_del(&pl->node);
995 kfree(pl);
1086 struct bpf_prog_list *pl;
1093 hlist_for_each_entry(pl, progs, node) {
1094 prog = prog_list_prog(pl);