On Thu, Oct 03, 2019 at 11:01:32AM +0200, Petr Mladek wrote: > 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 a simple and generic API that > helps to keep and pass information between the livepatches. > It is also usable to prevent loading incompatible livepatches. > > Changes since v2: > > + Typo fixes [Miroslav] > + Move the documentation at the end of the list [Miroslav] > + Add Miroslav's acks > > Changes since v1: > > + Use "unsigned long" instead of "int" for "state.id" [Nicolai] > + Use "unsigned int" instead of "int" for "state.version [Petr] > + Include "state.h" to avoid warning about non-static func [Miroslav] > + Simplify logic in klp_is_state_compatible() [Miroslav] > + Document how livepatches should handle the state [Nicolai] > + Fix some typos, formulation, module metadata [Joe, Miroslav] > > 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 | 167 +++++++++++++++++++++ > include/linux/livepatch.h | 17 +++ > kernel/livepatch/Makefile | 2 +- > kernel/livepatch/core.c | 44 ++++-- > kernel/livepatch/core.h | 5 +- > kernel/livepatch/state.c | 122 +++++++++++++++ > 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, 902 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 > Hi Petr, Thanks for respinning this one with the latest updates. The implementation looks fine to me. I have two really minor nits for the selftest (I'll reply to that commit), but I wouldn't hold up the series for them. Acked-by: Joe Lawrence <joe.lawrence@xxxxxxxxxx> -- Joe