NetBpfLoad: enforce kernel 5.4 for Android W

Bug: 370043209
Test: TreeHugger
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Change-Id: I08fa542c4febb5de917cfb0b4de748d13915b304
This commit is contained in:
Maciej Żenczykowski 2024-09-27 02:46:00 +00:00
commit 76f66b6a44

View file

@ -1475,6 +1475,13 @@ static int doLoad(char** argv, char * const envp[]) {
return 1;
}
// W bumps the kernel requirement up to 5.4
// see also: //system/netd/tests/kernel_test.cpp TestKernel54
if (isAtLeastW && !isAtLeastKernelVersion(5, 4, 0)) {
ALOGE("Android W requires kernel 5.4.");
return 1;
}
// Technically already required by U, but only enforce on V+
// see also: //system/netd/tests/kernel_test.cpp TestKernel64Bit
if (isAtLeastV && isKernel32Bit() && isAtLeastKernelVersion(5, 16, 0)) {
@ -1498,13 +1505,13 @@ static int doLoad(char** argv, char * const envp[]) {
bool bad = false;
if (!isLtsKernel()) {
ALOGW("Android V only supports LTS kernels.");
ALOGW("Android V+ only supports LTS kernels.");
bad = true;
}
#define REQUIRE(maj, min, sub) \
if (isKernelVersion(maj, min) && !isAtLeastKernelVersion(maj, min, sub)) { \
ALOGW("Android V requires %d.%d kernel to be %d.%d.%d+.", maj, min, maj, min, sub); \
ALOGW("Android V+ requires %d.%d kernel to be %d.%d.%d+.", maj, min, maj, min, sub); \
bad = true; \
}