bpfloader: require 64-bit userspace on 6.2+ kernels
This is safe as there are no LTS 6.2+ kernels yet. Test: TreeHugger Signed-off-by: Maciej Żenczykowski <maze@google.com> Change-Id: I2766ee9eb54017451a301b4d7dcf81368fb41723
This commit is contained in:
parent
0156d6e2ba
commit
ce66750cb6
1 changed files with 24 additions and 0 deletions
|
@ -256,6 +256,30 @@ int main(int argc, char** argv) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (android::bpf::isUserspace32bit() && android::bpf::isAtLeastKernelVersion(6, 2, 0)) {
|
||||||
|
/* Android 14/U should only launch on 64-bit kernels
|
||||||
|
* T launches on 5.10/5.15
|
||||||
|
* U launches on 5.15/6.1
|
||||||
|
* So >=5.16 implies isKernel64Bit()
|
||||||
|
*
|
||||||
|
* We thus added a test to V VTS which requires 5.16+ devices to use 64-bit kernels.
|
||||||
|
*
|
||||||
|
* Starting with Android V, which is the first to support a post 6.1 Linux Kernel,
|
||||||
|
* we also require 64-bit userspace.
|
||||||
|
*
|
||||||
|
* There are various known issues with 32-bit userspace talking to various
|
||||||
|
* kernel interfaces (especially CAP_NET_ADMIN ones) on a 64-bit kernel.
|
||||||
|
* Some of these have userspace or kernel workarounds/hacks.
|
||||||
|
* Some of them don't...
|
||||||
|
* We're going to be removing the hacks.
|
||||||
|
*
|
||||||
|
* Additionally the 32-bit kernel jit support is poor,
|
||||||
|
* and 32-bit userspace on 64-bit kernel bpf ringbuffer compatibility is broken.
|
||||||
|
*/
|
||||||
|
ALOGE("64-bit userspace required on 6.2+ kernels.");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
// Ensure we can determine the Android build type.
|
// Ensure we can determine the Android build type.
|
||||||
if (!android::bpf::isEng() && !android::bpf::isUser() && !android::bpf::isUserdebug()) {
|
if (!android::bpf::isEng() && !android::bpf::isUser() && !android::bpf::isUserdebug()) {
|
||||||
ALOGE("Failed to determine the build type: got %s, want 'eng', 'user', or 'userdebug'",
|
ALOGE("Failed to determine the build type: got %s, want 'eng', 'user', or 'userdebug'",
|
||||||
|
|
Loading…
Reference in a new issue