| From 499bfd97b16a5f31962be0a87dea3e7930cec26f Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 31 Jul 2025 01:47:32 +0200 |
| Subject: bpf: Move cgroup iterator helpers to bpf.h |
| |
| From: Daniel Borkmann <daniel@iogearbox.net> |
| |
| [ Upstream commit 9621e60f59eae87eb9ffe88d90f24f391a1ef0f0 ] |
| |
| Move them into bpf.h given we also need them in core code. |
| |
| Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> |
| Link: https://lore.kernel.org/r/20250730234733.530041-3-daniel@iogearbox.net |
| Signed-off-by: Alexei Starovoitov <ast@kernel.org> |
| Stable-dep-of: abad3d0bad72 ("bpf: Fix oob access in cgroup local storage") |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| include/linux/bpf-cgroup.h | 5 ----- |
| include/linux/bpf.h | 22 ++++++++++++++-------- |
| 2 files changed, 14 insertions(+), 13 deletions(-) |
| |
| diff --git a/include/linux/bpf-cgroup.h b/include/linux/bpf-cgroup.h |
| index 2331cd8174fe3..684c4822f76a3 100644 |
| --- a/include/linux/bpf-cgroup.h |
| +++ b/include/linux/bpf-cgroup.h |
| @@ -72,9 +72,6 @@ to_cgroup_bpf_attach_type(enum bpf_attach_type attach_type) |
| extern struct static_key_false cgroup_bpf_enabled_key[MAX_CGROUP_BPF_ATTACH_TYPE]; |
| #define cgroup_bpf_enabled(atype) static_branch_unlikely(&cgroup_bpf_enabled_key[atype]) |
| |
| -#define for_each_cgroup_storage_type(stype) \ |
| - for (stype = 0; stype < MAX_BPF_CGROUP_STORAGE_TYPE; stype++) |
| - |
| struct bpf_cgroup_storage_map; |
| |
| struct bpf_storage_buffer { |
| @@ -500,8 +497,6 @@ static inline int bpf_percpu_cgroup_storage_update(struct bpf_map *map, |
| #define BPF_CGROUP_RUN_PROG_SETSOCKOPT(sock, level, optname, optval, optlen, \ |
| kernel_optval) ({ 0; }) |
| |
| -#define for_each_cgroup_storage_type(stype) for (; false; ) |
| - |
| #endif /* CONFIG_CGROUP_BPF */ |
| |
| #endif /* _BPF_CGROUP_H */ |
| diff --git a/include/linux/bpf.h b/include/linux/bpf.h |
| index 0a097087f0a7c..730e692e002ff 100644 |
| --- a/include/linux/bpf.h |
| +++ b/include/linux/bpf.h |
| @@ -194,6 +194,20 @@ enum btf_field_type { |
| BPF_REFCOUNT = (1 << 8), |
| }; |
| |
| +enum bpf_cgroup_storage_type { |
| + BPF_CGROUP_STORAGE_SHARED, |
| + BPF_CGROUP_STORAGE_PERCPU, |
| + __BPF_CGROUP_STORAGE_MAX |
| +#define MAX_BPF_CGROUP_STORAGE_TYPE __BPF_CGROUP_STORAGE_MAX |
| +}; |
| + |
| +#ifdef CONFIG_CGROUP_BPF |
| +# define for_each_cgroup_storage_type(stype) \ |
| + for (stype = 0; stype < MAX_BPF_CGROUP_STORAGE_TYPE; stype++) |
| +#else |
| +# define for_each_cgroup_storage_type(stype) for (; false; ) |
| +#endif /* CONFIG_CGROUP_BPF */ |
| + |
| typedef void (*btf_dtor_kfunc_t)(void *); |
| |
| struct btf_field_kptr { |
| @@ -995,14 +1009,6 @@ struct bpf_prog_offload { |
| u32 jited_len; |
| }; |
| |
| -enum bpf_cgroup_storage_type { |
| - BPF_CGROUP_STORAGE_SHARED, |
| - BPF_CGROUP_STORAGE_PERCPU, |
| - __BPF_CGROUP_STORAGE_MAX |
| -}; |
| - |
| -#define MAX_BPF_CGROUP_STORAGE_TYPE __BPF_CGROUP_STORAGE_MAX |
| - |
| /* The longest tracepoint has 12 args. |
| * See include/trace/bpf_probe.h |
| */ |
| -- |
| 2.50.1 |
| |