Hi, this is another piece in the puzzle that helps to maintain more livepatches. Especially pre/post (un)patch callbacks might change a system state. Any newly installed livepatch has to somehow deal with system state modifications done be already installed livepatches. This patchset provides, hopefully, a simple and generic API that helps to keep and pass information between the livepatches. It is also usable to prevent loading incompatible livepatches. There was also a related idea to add a sticky flag. It should be easy to add it later. It would perfectly fit into the new struct klp_state. Petr Mladek (5): livepatch: Keep replaced patches until post_patch callback is called livepatch: Basic API to track system state changes livepatch: Allow to distinguish different version of system state changes livepatch: Documentation of the new API for tracking system state changes livepatch: Selftests of the API for tracking system state changes Documentation/livepatch/index.rst | 1 + Documentation/livepatch/system-state.rst | 80 ++++++++++ include/linux/livepatch.h | 17 +++ kernel/livepatch/Makefile | 2 +- kernel/livepatch/core.c | 44 ++++-- kernel/livepatch/core.h | 5 +- kernel/livepatch/state.c | 121 +++++++++++++++ kernel/livepatch/state.h | 9 ++ kernel/livepatch/transition.c | 12 +- lib/livepatch/Makefile | 5 +- lib/livepatch/test_klp_state.c | 161 ++++++++++++++++++++ lib/livepatch/test_klp_state2.c | 190 ++++++++++++++++++++++++ lib/livepatch/test_klp_state3.c | 5 + tools/testing/selftests/livepatch/Makefile | 3 +- tools/testing/selftests/livepatch/test-state.sh | 180 ++++++++++++++++++++++ 15 files changed, 814 insertions(+), 21 deletions(-) create mode 100644 Documentation/livepatch/system-state.rst create mode 100644 kernel/livepatch/state.c create mode 100644 kernel/livepatch/state.h create mode 100644 lib/livepatch/test_klp_state.c create mode 100644 lib/livepatch/test_klp_state2.c create mode 100644 lib/livepatch/test_klp_state3.c create mode 100755 tools/testing/selftests/livepatch/test-state.sh -- 2.16.4