[PATCH v2 0/2] selftests/livepatch: fix building and running outside the host kernel

From: Sasha Levin

Date: Tue Nov 03 2026 - 09:13:41 EST


The livepatch test modules are built against the running host kernel
even when the selftests are built for a kernel in an output directory,
and the scripts skip every test on a machine without a kernel build
tree, even when the modules were built and installed with the
selftests.

Patch 1 is unchanged from v1. It picks KDIR from O or KBUILD_OUTPUT,
stops passing O and KBUILD_OUTPUT on to the module build, and skips the
modules for kernels without CONFIG_LIVEPATCH.

Patch 2 is new. Sashiko pointed out on v1 that has_kdir() skips the
tests on installed targets. That check predates this series, but it is
the run time half of the same problem, so patch 2 checks for the test
modules instead.

Tested on v7.4-rc1 with an x86_64 kernel with CONFIG_LIVEPATCH built in
an output directory. The modules build against it with

make -C tools/testing/selftests O=... TARGETS=livepatch install

and the installed tree was run in a VM that has no build directory for
that kernel. Without patch 2 every test skips on the missing KDIR. With
it all 8 livepatch tests pass, and they skip cleanly when test_modules/
is missing.

Changes since v1:
- Add patch 2.
- Rebase on v7.4-rc1, no changes to patch 1.

v1: https://lore.kernel.org/all/20261014200154.1365200-1-sashal@xxxxxxxxxx/

Sasha Levin (2):
selftests/livepatch: build test modules against the selected kernel
selftests/livepatch: skip based on the test modules instead of KDIR

tools/testing/selftests/livepatch/Makefile | 27 +++++++++++++++++++
.../testing/selftests/livepatch/functions.sh | 17 +++++-------
.../selftests/livepatch/test_modules/Makefile | 6 +++--
3 files changed, 37 insertions(+), 13 deletions(-)

--
2.53.0