Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Honestly all the conflicts were simple overlapping changes, nothing really interesting to report. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (C) 2014, Red Hat Inc, Arnaldo Carvalho de Melo <acme@redhat.com>
|
||||
*
|
||||
* Released under the GPL v2. (and only v2, not any later version)
|
||||
*/
|
||||
#include "array.h"
|
||||
#include <errno.h>
|
||||
|
@@ -1625,14 +1625,16 @@ static int bpf_object__probe_btf_func(struct bpf_object *obj)
|
||||
/* FUNC x */ /* [3] */
|
||||
BTF_TYPE_ENC(5, BTF_INFO_ENC(BTF_KIND_FUNC, 0, 0), 2),
|
||||
};
|
||||
int res;
|
||||
int btf_fd;
|
||||
|
||||
res = libbpf__probe_raw_btf((char *)types, sizeof(types),
|
||||
strs, sizeof(strs));
|
||||
if (res < 0)
|
||||
return res;
|
||||
if (res > 0)
|
||||
btf_fd = libbpf__load_raw_btf((char *)types, sizeof(types),
|
||||
strs, sizeof(strs));
|
||||
if (btf_fd >= 0) {
|
||||
obj->caps.btf_func = 1;
|
||||
close(btf_fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1650,14 +1652,16 @@ static int bpf_object__probe_btf_datasec(struct bpf_object *obj)
|
||||
BTF_TYPE_ENC(3, BTF_INFO_ENC(BTF_KIND_DATASEC, 0, 1), 4),
|
||||
BTF_VAR_SECINFO_ENC(2, 0, 4),
|
||||
};
|
||||
int res;
|
||||
int btf_fd;
|
||||
|
||||
res = libbpf__probe_raw_btf((char *)types, sizeof(types),
|
||||
strs, sizeof(strs));
|
||||
if (res < 0)
|
||||
return res;
|
||||
if (res > 0)
|
||||
btf_fd = libbpf__load_raw_btf((char *)types, sizeof(types),
|
||||
strs, sizeof(strs));
|
||||
if (btf_fd >= 0) {
|
||||
obj->caps.btf_datasec = 1;
|
||||
close(btf_fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -3194,6 +3198,10 @@ static const struct {
|
||||
BPF_CGROUP_UDP4_SENDMSG),
|
||||
BPF_EAPROG_SEC("cgroup/sendmsg6", BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
|
||||
BPF_CGROUP_UDP6_SENDMSG),
|
||||
BPF_EAPROG_SEC("cgroup/recvmsg4", BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
|
||||
BPF_CGROUP_UDP4_RECVMSG),
|
||||
BPF_EAPROG_SEC("cgroup/recvmsg6", BPF_PROG_TYPE_CGROUP_SOCK_ADDR,
|
||||
BPF_CGROUP_UDP6_RECVMSG),
|
||||
BPF_EAPROG_SEC("cgroup/sysctl", BPF_PROG_TYPE_CGROUP_SYSCTL,
|
||||
BPF_CGROUP_SYSCTL),
|
||||
};
|
||||
|
@@ -36,7 +36,7 @@ do { \
|
||||
#define pr_info(fmt, ...) __pr(LIBBPF_INFO, fmt, ##__VA_ARGS__)
|
||||
#define pr_debug(fmt, ...) __pr(LIBBPF_DEBUG, fmt, ##__VA_ARGS__)
|
||||
|
||||
int libbpf__probe_raw_btf(const char *raw_types, size_t types_len,
|
||||
const char *str_sec, size_t str_len);
|
||||
int libbpf__load_raw_btf(const char *raw_types, size_t types_len,
|
||||
const char *str_sec, size_t str_len);
|
||||
|
||||
#endif /* __LIBBPF_LIBBPF_INTERNAL_H */
|
||||
|
@@ -133,8 +133,8 @@ bool bpf_probe_prog_type(enum bpf_prog_type prog_type, __u32 ifindex)
|
||||
return errno != EINVAL && errno != EOPNOTSUPP;
|
||||
}
|
||||
|
||||
int libbpf__probe_raw_btf(const char *raw_types, size_t types_len,
|
||||
const char *str_sec, size_t str_len)
|
||||
int libbpf__load_raw_btf(const char *raw_types, size_t types_len,
|
||||
const char *str_sec, size_t str_len)
|
||||
{
|
||||
struct btf_header hdr = {
|
||||
.magic = BTF_MAGIC,
|
||||
@@ -157,14 +157,9 @@ int libbpf__probe_raw_btf(const char *raw_types, size_t types_len,
|
||||
memcpy(raw_btf + hdr.hdr_len + hdr.type_len, str_sec, hdr.str_len);
|
||||
|
||||
btf_fd = bpf_load_btf(raw_btf, btf_len, NULL, 0, false);
|
||||
if (btf_fd < 0) {
|
||||
free(raw_btf);
|
||||
return 0;
|
||||
}
|
||||
|
||||
close(btf_fd);
|
||||
free(raw_btf);
|
||||
return 1;
|
||||
return btf_fd;
|
||||
}
|
||||
|
||||
static int load_sk_storage_btf(void)
|
||||
@@ -190,7 +185,7 @@ static int load_sk_storage_btf(void)
|
||||
BTF_MEMBER_ENC(23, 2, 32),/* struct bpf_spin_lock l; */
|
||||
};
|
||||
|
||||
return libbpf__probe_raw_btf((char *)types, sizeof(types),
|
||||
return libbpf__load_raw_btf((char *)types, sizeof(types),
|
||||
strs, sizeof(strs));
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user