From 976f0ef5c14ef520fd6315acdc6579159fa489d0 Mon Sep 17 00:00:00 2001 From: Davide Bertola Date: Wed, 25 Sep 2024 21:24:08 +0200 Subject: [PATCH] Fix kconfig symbol address --- aya-obj/src/btf/btf.rs | 2 +- test/integration-test/bpf/kconfig.bpf.c | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/aya-obj/src/btf/btf.rs b/aya-obj/src/btf/btf.rs index df00eddb8..46e2b8ed2 100644 --- a/aya-obj/src/btf/btf.rs +++ b/aya-obj/src/btf/btf.rs @@ -889,8 +889,8 @@ impl Object { section_data.resize((symbol.address - offset) as usize, 0); self.symbol_offset_by_name.insert(name, symbol.address); + offset = symbol.address + section_data.len() as u64; section_data.extend(data); - offset = symbol.address + data.len() as u64; } else { return Err(BtfError::ExternalSymbolNotFound { symbol_name: name }); } diff --git a/test/integration-test/bpf/kconfig.bpf.c b/test/integration-test/bpf/kconfig.bpf.c index 0e8b1907b..37ba61cba 100644 --- a/test/integration-test/bpf/kconfig.bpf.c +++ b/test/integration-test/bpf/kconfig.bpf.c @@ -3,11 +3,24 @@ #include // clang-format on +// CONFIG_BPF=y => 1 extern unsigned int CONFIG_BPF __kconfig; +// CONFIG_PANIC_TIMEOUT=0 => 0 +extern unsigned int CONFIG_PANIC_TIMEOUT __kconfig; +// CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +extern unsigned int CONFIG_DEFAULT_HUNG_TASK_TIMEOUT __kconfig; SEC("xdp") int kconfig(struct xdp_md *ctx) { - if (!CONFIG_BPF) { + if (CONFIG_BPF != 1) { + return XDP_DROP; + } + + if (CONFIG_PANIC_TIMEOUT != 0) { + return XDP_DROP; + } + + if (CONFIG_DEFAULT_HUNG_TASK_TIMEOUT != 120) { return XDP_DROP; }