diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-06-24 02:51:09 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-06-24 02:51:09 +0000 |
commit | d53a5498a97d3cf9af4dcc742c0df8b879cb1013 (patch) | |
tree | 612e8d224624a5121f3358d69267f003b14e7919 | |
parent | ecc20bd891ccfeb0a8f4934af468ece2a5a693c7 (diff) | |
parent | 82eed90a2022982e229171fd3949554c02478d41 (diff) | |
download | bpf-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.cpp | 9 |
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(), |