mirror of
https://github.com/netdata/libbpf.git
synced 2026-04-03 15:19:07 +08:00
libbpf: fix feature detectors when using token_fd
Adjust `union bpf_attr` size passed to kernel in two feature-detecting
functions to take into account prog_token_fd field.
Libbpf is avoiding memset()'ing entire `union bpf_attr` by only using
minimal set of bpf_attr's fields. Two places have been missed when
wiring BPF token support in libbpf's feature detection logic.
Fix them trivially.
Fixes: f3dcee938f48 ("libbpf: Wire up token_fd into feature probing logic")
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20240513180804.403775-1-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
committed by
Andrii Nakryiko
parent
15b461a608
commit
8dfa981c53
@@ -105,7 +105,7 @@ int sys_bpf_prog_load(union bpf_attr *attr, unsigned int size, int attempts)
|
|||||||
*/
|
*/
|
||||||
int probe_memcg_account(int token_fd)
|
int probe_memcg_account(int token_fd)
|
||||||
{
|
{
|
||||||
const size_t attr_sz = offsetofend(union bpf_attr, attach_btf_obj_fd);
|
const size_t attr_sz = offsetofend(union bpf_attr, prog_token_fd);
|
||||||
struct bpf_insn insns[] = {
|
struct bpf_insn insns[] = {
|
||||||
BPF_EMIT_CALL(BPF_FUNC_ktime_get_coarse_ns),
|
BPF_EMIT_CALL(BPF_FUNC_ktime_get_coarse_ns),
|
||||||
BPF_EXIT_INSN(),
|
BPF_EXIT_INSN(),
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ int probe_fd(int fd)
|
|||||||
|
|
||||||
static int probe_kern_prog_name(int token_fd)
|
static int probe_kern_prog_name(int token_fd)
|
||||||
{
|
{
|
||||||
const size_t attr_sz = offsetofend(union bpf_attr, prog_name);
|
const size_t attr_sz = offsetofend(union bpf_attr, prog_token_fd);
|
||||||
struct bpf_insn insns[] = {
|
struct bpf_insn insns[] = {
|
||||||
BPF_MOV64_IMM(BPF_REG_0, 0),
|
BPF_MOV64_IMM(BPF_REG_0, 0),
|
||||||
BPF_EXIT_INSN(),
|
BPF_EXIT_INSN(),
|
||||||
|
|||||||
Reference in New Issue
Block a user