mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-29 19:21:31 -04:00
UPSTREAM: bpf: net: Use precomputed btf_id for bpf iterators
One additional field btf_id is added to struct bpf_ctx_arg_aux to store the precomputed btf_ids. The btf_id is computed at build time with BTF_ID_LIST or BTF_ID_LIST_GLOBAL macro definitions. All existing bpf iterators are changed to used pre-compute btf_ids. Change-Id: I1cb3532f3c31b426f279ed17e092e311649d54e1 Signed-off-by: Yonghong Song <[email protected]> Signed-off-by: Alexei Starovoitov <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
This commit is contained in:
parent
0d692dd8f9
commit
6be51943c7
8 changed files with 38 additions and 9 deletions
|
|
@ -76,6 +76,7 @@
|
|||
#include <linux/proc_fs.h>
|
||||
#include <linux/seq_file.h>
|
||||
#include <linux/inetdevice.h>
|
||||
#include <linux/btf_ids.h>
|
||||
|
||||
#include <crypto/hash.h>
|
||||
#include <linux/scatterlist.h>
|
||||
|
|
@ -2924,7 +2925,7 @@ static void bpf_iter_fini_tcp(void *priv_data)
|
|||
bpf_iter_fini_seq_net(priv_data);
|
||||
}
|
||||
|
||||
static const struct bpf_iter_reg tcp_reg_info = {
|
||||
static struct bpf_iter_reg tcp_reg_info = {
|
||||
.target = "tcp",
|
||||
.seq_ops = &bpf_iter_tcp_seq_ops,
|
||||
.init_seq_private = bpf_iter_init_tcp,
|
||||
|
|
@ -2939,6 +2940,7 @@ static const struct bpf_iter_reg tcp_reg_info = {
|
|||
|
||||
static void __init bpf_iter_register(void)
|
||||
{
|
||||
tcp_reg_info.ctx_arg_info[0].btf_id = btf_sock_ids[BTF_SOCK_TYPE_SOCK_COMMON];
|
||||
if (bpf_iter_reg_target(&tcp_reg_info))
|
||||
pr_warn("Warning: could not register bpf iterator tcp\n");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -106,6 +106,7 @@
|
|||
#include <net/xfrm.h>
|
||||
#include <trace/events/udp.h>
|
||||
#include <linux/static_key.h>
|
||||
#include <linux/btf_ids.h>
|
||||
#include <trace/events/skb.h>
|
||||
#include <net/busy_poll.h>
|
||||
#include "udp_impl.h"
|
||||
|
|
@ -3208,7 +3209,7 @@ static void bpf_iter_fini_udp(void *priv_data)
|
|||
bpf_iter_fini_seq_net(priv_data);
|
||||
}
|
||||
|
||||
static const struct bpf_iter_reg udp_reg_info = {
|
||||
static struct bpf_iter_reg udp_reg_info = {
|
||||
.target = "udp",
|
||||
.seq_ops = &bpf_iter_udp_seq_ops,
|
||||
.init_seq_private = bpf_iter_init_udp,
|
||||
|
|
@ -3223,6 +3224,7 @@ static const struct bpf_iter_reg udp_reg_info = {
|
|||
|
||||
static void __init bpf_iter_register(void)
|
||||
{
|
||||
udp_reg_info.ctx_arg_info[0].btf_id = btf_sock_ids[BTF_SOCK_TYPE_UDP];
|
||||
if (bpf_iter_reg_target(&udp_reg_info))
|
||||
pr_warn("Warning: could not register bpf iterator udp\n");
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue