summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndroid Build Coastguard Worker <android-build-coastguard-worker@google.com>2022-06-24 02:51:09 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-06-24 02:51:09 +0000
commitd53a5498a97d3cf9af4dcc742c0df8b879cb1013 (patch)
tree612e8d224624a5121f3358d69267f003b14e7919
parentecc20bd891ccfeb0a8f4934af468ece2a5a693c7 (diff)
parent82eed90a2022982e229171fd3949554c02478d41 (diff)
downloadbpf-android13-gsi.tar.gz
Merge cherrypicks of [19048272] into tm-release. am: 82eed90a20android13-gsi
Original change: https://googleplex-android-review.googlesource.com/c/platform/system/bpf/+/19059072 Change-Id: I2bc1e7b6515b0cbd8c00223294a9844c0c42f8c4 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--libbpf_android/Loader.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/libbpf_android/Loader.cpp b/libbpf_android/Loader.cpp
index 47cf4c9..1c462dd 100644
--- a/libbpf_android/Loader.cpp
+++ b/libbpf_android/Loader.cpp
@@ -724,13 +724,16 @@ static int createMaps(const char* elfPath, ifstream& elfFile, vector<unique_fd>&
ret = getSectionSymNames(elfFile, "maps", mapNames);
if (ret) return ret;
+ unsigned btfMinBpfLoaderVer = readSectionUint("btf_min_bpfloader_ver", elfFile, 0);
+ unsigned btfMinKernelVer = readSectionUint("btf_min_kernel_ver", elfFile, 0);
+ unsigned kvers = kernelVersion();
+
std::optional<unique_fd> btfFd;
- if (!readSectionByName(".BTF", elfFile, btfData)) {
+ if ((BPFLOADER_VERSION >= btfMinBpfLoaderVer) && (kvers >= btfMinKernelVer) &&
+ (!readSectionByName(".BTF", elfFile, btfData))) {
btfFd = getMapBtfInfo(elfPath, btfTypeIdMap);
}
- unsigned kvers = kernelVersion();
-
for (int i = 0; i < (int)mapNames.size(); i++) {
if (BPFLOADER_VERSION < md[i].bpfloader_min_ver) {
ALOGI("skipping map %s which requires bpfloader min ver 0x%05x", mapNames[i].c_str(),