On Mon, Mar 09, 2026 at 11:37:12AM +0800, Sun Jian wrote: [...] > .../bpf/prog_tests/livepatch_trampoline.c | 22 +++++++++++++++++-- > 1 file changed, 20 insertions(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/bpf/prog_tests/livepatch_trampoline.c > b/tools/testing/selftests/bpf/prog_tests/livepatch_trampoline.c > index 72aa5376c30e..b306a4070513 100644 > --- a/tools/testing/selftests/bpf/prog_tests/livepatch_trampoline.c > +++ b/tools/testing/selftests/bpf/prog_tests/livepatch_trampoline.c > @@ -2,9 +2,13 @@ > /* Copyright (c) 2025 Meta Platforms, Inc. and affiliates. */ > > #include <test_progs.h> > +#include <errno.h>
NIT: #include <errno.h> is unnecessary — it's already pulled in by test_progs.h. Other than that, the patch looks good to me. Reviewed-by: Jiayuan Chen <[email protected]> > +#include <unistd.h> > #include "testing_helpers.h" > #include "livepatch_trampoline.skel.h" > > +#define LIVEPATCH_ENABLED_PATH > "/sys/kernel/livepatch/livepatch_sample/enabled" > + > static int load_livepatch(void) > { > char path[4096]; > @@ -19,7 +23,8 @@ static int load_livepatch(void) > static void unload_livepatch(void) > { > /* Disable the livepatch before unloading the module */ > - system("echo 0 > /sys/kernel/livepatch/livepatch_sample/enabled"); > + if (!access(LIVEPATCH_ENABLED_PATH, F_OK)) > + system("echo 0 > " LIVEPATCH_ENABLED_PATH); > > unload_module("livepatch_sample", env_verbosity > VERBOSE_NONE); > } > @@ -81,9 +86,22 @@ static void __test_livepatch_trampoline(bool fexit_first) > void test_livepatch_trampoline(void) > { > int retry_cnt = 0; > + int err; > + > + /* Skip if kernel was built without CONFIG_LIVEPATCH */ > + if (access("/sys/kernel/livepatch", F_OK)) { > + test__skip(); > + return; > + } > > retry: > - if (load_livepatch()) { > + err = load_livepatch(); > + if (err) { > + if (err == -ENOENT) { > + test__skip(); > + return; > + } > + > if (retry_cnt) { > ASSERT_OK(1, "load_livepatch"); > goto out; > > base-commit: 1f318b96cc84d7c2ab792fcc0bfd42a7ca890681 > -- > 2.43.0 >
