]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bpf: Remove attach_type in bpf_cgroup_link
authorTao Chen <chen.dylane@linux.dev>
Thu, 10 Jul 2025 03:20:33 +0000 (11:20 +0800)
committerAndrii Nakryiko <andrii@kernel.org>
Fri, 11 Jul 2025 17:51:55 +0000 (10:51 -0700)
Use attach_type in bpf_link, and remove it in bpf_cgroup_link.

Signed-off-by: Tao Chen <chen.dylane@linux.dev>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Acked-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Link: https://lore.kernel.org/bpf/20250710032038.888700-3-chen.dylane@linux.dev
include/linux/bpf-cgroup.h
kernel/bpf/cgroup.c

index 70c8b94e797ac9c2e785320e565b9eff17ec9ae1..082ccd8ad96bb76d7cf97f6b63a1b1c1a2ac79f6 100644 (file)
@@ -103,7 +103,6 @@ struct bpf_cgroup_storage {
 struct bpf_cgroup_link {
        struct bpf_link link;
        struct cgroup *cgroup;
-       enum bpf_attach_type type;
 };
 
 struct bpf_prog_list {
index bacdd0ca7419ca176d709578cd28bb4e56fc87b6..72c8b50dca0ac94ad239486ef357a7619677035d 100644 (file)
@@ -984,7 +984,7 @@ static int __cgroup_bpf_replace(struct cgroup *cgrp,
        struct hlist_head *progs;
        bool found = false;
 
-       atype = bpf_cgroup_atype_find(link->type, new_prog->aux->attach_btf_id);
+       atype = bpf_cgroup_atype_find(link->link.attach_type, new_prog->aux->attach_btf_id);
        if (atype < 0)
                return -EINVAL;
 
@@ -1396,8 +1396,8 @@ static void bpf_cgroup_link_release(struct bpf_link *link)
        }
 
        WARN_ON(__cgroup_bpf_detach(cg_link->cgroup, NULL, cg_link,
-                                   cg_link->type, 0));
-       if (cg_link->type == BPF_LSM_CGROUP)
+                                   link->attach_type, 0));
+       if (link->attach_type == BPF_LSM_CGROUP)
                bpf_trampoline_unlink_cgroup_shim(cg_link->link.prog);
 
        cg = cg_link->cgroup;
@@ -1439,7 +1439,7 @@ static void bpf_cgroup_link_show_fdinfo(const struct bpf_link *link,
                   "cgroup_id:\t%llu\n"
                   "attach_type:\t%d\n",
                   cg_id,
-                  cg_link->type);
+                  link->attach_type);
 }
 
 static int bpf_cgroup_link_fill_link_info(const struct bpf_link *link,
@@ -1455,7 +1455,7 @@ static int bpf_cgroup_link_fill_link_info(const struct bpf_link *link,
        cgroup_unlock();
 
        info->cgroup.cgroup_id = cg_id;
-       info->cgroup.attach_type = cg_link->type;
+       info->cgroup.attach_type = link->attach_type;
        return 0;
 }
 
@@ -1497,7 +1497,6 @@ int cgroup_bpf_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
        bpf_link_init(&link->link, BPF_LINK_TYPE_CGROUP, &bpf_cgroup_link_lops,
                      prog, attr->link_create.attach_type);
        link->cgroup = cgrp;
-       link->type = attr->link_create.attach_type;
 
        err = bpf_link_prime(&link->link, &link_primer);
        if (err) {
@@ -1506,7 +1505,7 @@ int cgroup_bpf_link_attach(const union bpf_attr *attr, struct bpf_prog *prog)
        }
 
        err = cgroup_bpf_attach(cgrp, NULL, NULL, link,
-                               link->type, BPF_F_ALLOW_MULTI | attr->link_create.flags,
+                               link->link.attach_type, BPF_F_ALLOW_MULTI | attr->link_create.flags,
                                attr->link_create.cgroup.relative_fd,
                                attr->link_create.cgroup.expected_revision);
        if (err) {