From 2493cf4eb63b4cacd9e73dbcc15a6a683524ff1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Thu, 31 Jul 2025 17:08:09 -0700 Subject: [PATCH] NetBpfLoad: pass md to applyMapRelo() - no longer need readMapNames() function MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test: TreeHugger Flag: EXEMPT mainline/noop Signed-off-by: Maciej Żenczykowski Change-Id: I13315fce03b8287a32456ffa7b5a102fd41fd28d --- bpf/loader/NetBpfLoad.cpp | 34 +++++++--------------------------- 1 file changed, 7 insertions(+), 27 deletions(-) diff --git a/bpf/loader/NetBpfLoad.cpp b/bpf/loader/NetBpfLoad.cpp index 0377fd8cd4..f02241c77e 100644 --- a/bpf/loader/NetBpfLoad.cpp +++ b/bpf/loader/NetBpfLoad.cpp @@ -824,22 +824,6 @@ static int pinMap(const borrowed_fd& fd, const struct bpf_map_def& mapDef) { return 0; } -static int readMapNames(ifstream& elfFile, vector& mapNames) { - int ret = getSectionSymNames(elfFile, ".android_maps", mapNames); - if (ret) return ret; - - const string suffix = "_def"; - for (string& name : mapNames) { - if (EndsWith(name, suffix)) { - name.erase(name.length() - suffix.length()); - } else { - ALOGE("Failed to get map names, invalid symbol in .android_maps: %s", name.c_str()); - return 1; - } - } - return 0; -} - static bool isMapTypeSupported(enum bpf_map_type type) { if (type == BPF_MAP_TYPE_LPM_TRIE && !isAtLeastKernelVersion(4, 14, 0)) { // On Linux Kernels older than 4.14 this map type doesn't exist - autoskip. @@ -1024,13 +1008,9 @@ static void applyRelo(void* insnsPtr, Elf64_Addr offset, int fd) { insn->src_reg = BPF_PSEUDO_MAP_FD; } -static void applyMapRelo(ifstream& elfFile, vector &mapFds, vector& cs) { - vector mapNames; - - int ret = readMapNames(elfFile, mapNames); - if (ret) return; - - for (int k = 0; k != (int)cs.size(); k++) { +static void applyMapRelo(ifstream& elfFile, const vector& md, + vector &mapFds, vector& cs) { + for (unsigned k = 0; k < cs.size(); k++) { Elf64_Rel* rel = (Elf64_Rel*)(cs[k].rel_data.data()); int n_rel = cs[k].rel_data.size() / sizeof(*rel); @@ -1038,12 +1018,12 @@ static void applyMapRelo(ifstream& elfFile, vector &mapFds, vector