NetBpfLoad: gently enable mainline
Only the non-CRITICAL test@mainline.o is loaded from netbpfload
on T and U < QPR3, everything else is loaded by platform bpfloader
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: Ic07a57cf93851d3a1411b62c97d8ce057507360b
diff --git a/netbpfload/loader.cpp b/netbpfload/loader.cpp
index 289b4d7..72ff172 100644
--- a/netbpfload/loader.cpp
+++ b/netbpfload/loader.cpp
@@ -1122,11 +1122,20 @@
readSectionUint("bpfloader_max_ver", elfFile, DEFAULT_BPFLOADER_MAX_VER);
unsigned int bpfLoaderMinRequiredVer =
readSectionUint("bpfloader_min_required_ver", elfFile, 0);
+ unsigned int netBpfLoadMinVer =
+ readSectionUint("netbpfload_min_ver", elfFile, 0);
size_t sizeOfBpfMapDef =
readSectionUint("size_of_bpf_map_def", elfFile, DEFAULT_SIZEOF_BPF_MAP_DEF);
size_t sizeOfBpfProgDef =
readSectionUint("size_of_bpf_prog_def", elfFile, DEFAULT_SIZEOF_BPF_PROG_DEF);
+ // temporary hack to enable gentle enablement of mainline NetBpfLoad
+ if (bpfloader_ver < netBpfLoadMinVer) {
+ ALOGI("NetBpfLoad version %d ignoring ELF object %s with netbpfload min ver %d",
+ bpfloader_ver, elfPath, netBpfLoadMinVer);
+ return 0;
+ }
+
// inclusive lower bound check
if (bpfloader_ver < bpfLoaderMinVer) {
ALOGI("BpfLoader version 0x%05x ignoring ELF object %s with min ver 0x%05x",