From: Jakub Kicinski <kuba@kernel.org>
To: daniel@iogearbox.net, ast@kernel.org, andrii@kernel.org
Cc: bpf@vger.kernel.org, Jakub Kicinski <kuba@kernel.org>
Subject: [PATCH bpf-next v2 2/4] bpf: create a header for inline helpers
Date: Tue, 14 Dec 2021 18:31:24 -0800 [thread overview]
Message-ID: <20211215023126.659200-3-kuba@kernel.org> (raw)
In-Reply-To: <20211215023126.659200-1-kuba@kernel.org>
static inlines are notorious for creating inter-header dependencies.
Create a dedicated header where we can place include-heavy inlines
for bpf.
Put cgroup_storage_type() there. It needs to deference bpf_map and
access cgroup types thus creating a dependency between cgroup and
bpf.
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
---
include/linux/bpf-cgroup.h | 9 ---------
include/linux/bpf-inlines.h | 17 +++++++++++++++++
kernel/bpf/helpers.c | 1 +
kernel/bpf/local_storage.c | 1 +
4 files changed, 19 insertions(+), 9 deletions(-)
create mode 100644 include/linux/bpf-inlines.h
diff --git a/include/linux/bpf-cgroup.h b/include/linux/bpf-cgroup.h
index 11820a430d6c..12474516e0be 100644
--- a/include/linux/bpf-cgroup.h
+++ b/include/linux/bpf-cgroup.h
@@ -194,15 +194,6 @@ int __cgroup_bpf_run_filter_getsockopt_kern(struct sock *sk, int level,
int optname, void *optval,
int *optlen, int retval);
-static inline enum bpf_cgroup_storage_type cgroup_storage_type(
- struct bpf_map *map)
-{
- if (map->map_type == BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE)
- return BPF_CGROUP_STORAGE_PERCPU;
-
- return BPF_CGROUP_STORAGE_SHARED;
-}
-
struct bpf_cgroup_storage *
cgroup_storage_lookup(struct bpf_cgroup_storage_map *map,
void *key, bool locked);
diff --git a/include/linux/bpf-inlines.h b/include/linux/bpf-inlines.h
new file mode 100644
index 000000000000..73d8429d22f1
--- /dev/null
+++ b/include/linux/bpf-inlines.h
@@ -0,0 +1,17 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _BPF_INLINES_H
+#define _BPF_INLINES_H
+
+#include <linux/bpf.h>
+#include <linux/bpf-cgroup.h>
+
+static inline enum bpf_cgroup_storage_type cgroup_storage_type(
+ struct bpf_map *map)
+{
+ if (map->map_type == BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE)
+ return BPF_CGROUP_STORAGE_PERCPU;
+
+ return BPF_CGROUP_STORAGE_SHARED;
+}
+
+#endif
diff --git a/kernel/bpf/helpers.c b/kernel/bpf/helpers.c
index 8babae03d30a..d33216287b4d 100644
--- a/kernel/bpf/helpers.c
+++ b/kernel/bpf/helpers.c
@@ -2,6 +2,7 @@
/* Copyright (c) 2011-2014 PLUMgrid, http://plumgrid.com
*/
#include <linux/bpf.h>
+#include <linux/bpf-inlines.h>
#include <linux/rcupdate.h>
#include <linux/random.h>
#include <linux/smp.h>
diff --git a/kernel/bpf/local_storage.c b/kernel/bpf/local_storage.c
index 035e9e3a7132..bc8cfe03a37e 100644
--- a/kernel/bpf/local_storage.c
+++ b/kernel/bpf/local_storage.c
@@ -1,5 +1,6 @@
//SPDX-License-Identifier: GPL-2.0
#include <linux/bpf-cgroup.h>
+#include <linux/bpf-inlines.h>
#include <linux/bpf.h>
#include <linux/bpf_local_storage.h>
#include <linux/btf.h>
--
2.31.1
next prev parent reply other threads:[~2021-12-15 2:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-15 2:31 [PATCH bpf-next v2 0/4] bpf: remove the cgroup -> bpf header dependecy Jakub Kicinski
2021-12-15 2:31 ` [PATCH bpf-next v2 1/4] bpf: add header for enum bpf_cgroup_storage_type and bpf_link Jakub Kicinski
2021-12-15 2:31 ` Jakub Kicinski [this message]
2021-12-15 2:31 ` [PATCH bpf-next v2 3/4] add includes masked by cgroup -> bpf dependency Jakub Kicinski
2021-12-15 2:31 ` [PATCH bpf-next v2 4/4] bpf: remove the cgroup -> bpf header dependecy Jakub Kicinski
2021-12-15 5:15 ` Alexei Starovoitov
2021-12-15 5:54 ` Jakub Kicinski
2021-12-15 5:28 ` kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211215023126.659200-3-kuba@kernel.org \
--to=kuba@kernel.org \
--cc=andrii@kernel.org \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.