[PATCH v5 0/6] kselftests: livepatch: Adapt tests to be executed on 4.12 kernels

From: Marcos Paulo de Souza

Date: Mon May 04 2026 - 14:35:14 EST


This is the fifth version of the patchset, which fixes the last Sashiko
comment, about overwriting MOD_LIVEPATCH global variable and using a
local variable to avoid module load clashing when an older kernel
don't support some sysfs attributes.

Original cover-letter:
These patches don't really change how the patches are run, just skip
some tests on kernels that don't support a feature (like kprobe and
livepatched living together) or when a livepatch sysfs attribute is
missing.

These patches are based on printk/for-next branch.

Please review! Thanks!

Signed-off-by: Marcos Paulo de Souza <mpdesouza@xxxxxxxx>
---
Changes in v5:
- Edit the last three patches to avoid overwriting MOD_LIVEPATCH
variable, using a local variable. This fixed the last Sashiko report.
- Link to v4: https://patch.msgid.link/20260429-lp-tests-old-fixes-v4-0-59b9741989d0@xxxxxxxx

Changes in v4:
- Patch 5 was changed in order to address a comment made by Sashiko, where
subsequent tests rewrite the variables that contain the modules being loaded.
- Link to v3: https://patch.msgid.link/20260427-lp-tests-old-fixes-v3-0-ccf3c90f744c@xxxxxxxx

Changes in v3:
- Patch 1 was changed to reorganize the ifdeffery to handle multiple archs syscall wrapper (Miroslav)
- Patch 3 was changed to rework the commit message and to address function naming (Joe)
- Patches 4, 5 and 6 where had the commit messages to include the kernel version where
the given sysfs attributes were included (Petr Mladek)
- Link to v2: https://patch.msgid.link/20260413-lp-tests-old-fixes-v2-0-367c7cb5006f@xxxxxxxx

Changes in v2:
- Patch descriptions were changed to remove "test-X", since it was polluting the commit subjects (Miroslav Benes)
- Patch 8 was dropped since it was checking for a message from an out-of-tree patch. (Petr Mladek)
- Patch 3 was dropped as should be treated as expected failure for older kernels. (Petr Mladek)
- Patch 2 was changed to use y/n instead of 1/0, since it's more natural to use it.
- Patch 1 was changed to handle ppc and loongson, and error out if dealing with a different architecture that sets
CONFIG_ARCH_HAS_SYSCALL_WRAPPER and haven't changed the test to include the proper wrapper prefix.
- Patch 4 was changed to invert the return of the bash function to return 1 in failure, like
a normal bash function (Joe Lawrence)
- Patches 5, 6 an 7 were changed to not split the tests, but to only run the tests
when the attribute were present (Miroslav Benes)
- Link to v1: https://patch.msgid.link/20260313-lp-tests-old-fixes-v1-0-71ac6dfb3253@xxxxxxxx

---
Marcos Paulo de Souza (6):
selftests: livepatch: Check for ARCH_HAS_SYSCALL_WRAPPER config
selftests: livepatch: Replace true/false module parameter by y/n
selftests: livepatch: Introduce does_sysfs_exist function
selftests: livepatch: Check if patched sysfs attribute exists
selftests: livepatch: Check if replace sysfs attribute exists
selftests: livepatch: Check if stack_order sysfs attribute exists

tools/testing/selftests/livepatch/functions.sh | 10 +
tools/testing/selftests/livepatch/test-kprobe.sh | 8 +-
tools/testing/selftests/livepatch/test-sysfs.sh | 219 +++++++++++----------
.../livepatch/test_modules/test_klp_syscall.c | 27 ++-
4 files changed, 153 insertions(+), 111 deletions(-)
---
base-commit: 712c0756828becbfc629ff8d8b82deff5d1115e4
change-id: 20260309-lp-tests-old-fixes-f955abc8ec27

Best regards,
--
Marcos Paulo de Souza <mpdesouza@xxxxxxxx>