From 8f3cfccf278ba3e508bfa8b467a3100dbf4958b5 Mon Sep 17 00:00:00 2001 From: Motomu Utsumi Date: Thu, 28 Aug 2025 20:09:44 +0900 Subject: [PATCH] NetBpfLoad: Fail boot if BTF load fails on 4.19+ libbpf ignores BTF load error but this causes boot failure only when BTF is required for some reasons (e.g. SK_STORAGE). This CL makes boot fails regardless of the necessity of BTF on 4.19+ kernel Test: boot kernel on 4.14, 4.19, 5.10, 6.1 Flag: EXEMPT mainline Change-Id: I0af1e7eedcbea803c22c064ff157700a01307691 --- bpf/loader/NetBpfLoad.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bpf/loader/NetBpfLoad.cpp b/bpf/loader/NetBpfLoad.cpp index a94bb65ec3..858b6531a1 100644 --- a/bpf/loader/NetBpfLoad.cpp +++ b/bpf/loader/NetBpfLoad.cpp @@ -1316,6 +1316,8 @@ static int loadProgByLibbpf(const char* const elfPath, const unsigned int bpfloa ret = bpf_object__load(obj); if (ret) return ret; + // On Linux Kernels older than 4.18 BPF_BTF_LOAD command doesn't exist. + if (isAtLeastKernelVersion(4, 19, 0) && bpf_object__btf_fd(obj) < 0) return -1; ret = pinMaps(obj, md); if (ret) return ret;