Hello, This is the v2 of the livepatch shadow GC patches. The changes are minor since nobody asked for for big code changes. Changes from v1: * Reworked commit messages (Petr) * Added my SoB which was missing in some patches, or the ordering was wrong. (Josh) * Change __klp_shadow_get_or_use to __klp_shadow_get_or_add_locked and add a comment (Petr) * Add lockdep_assert_held on __klp_shadow_get_or_add_locked (Petr) about it's meaning (Petr) * CCing LKML (Josh) Some observations: * Petr has reviewed some of the patches that we created. I kept the Reviewed-by tags since he wrote the patches some time ago and now he reviewed them again on the ML. * There were questions about possible problems about using klp_shadow_types instead of using ids, but Petr already explained that internally it still uses the id to find the correct livepatch. * Regarding the possibility of multiple patches use the same ID, the problem already existed before. Petr suggested using a "stringified" version using name and id, but nobody has commented yet. I can implement such feature in a v3 if necessary. Marcos Paulo de Souza (2): livepatch/shadow: Introduce klp_shadow_type structure livepatch/shadow: Add garbage collection of shadow variables Petr Mladek (2): livepatch/shadow: Separate code to get or use pre-allocated shadow variable livepatch/shadow: Separate code removing all shadow variables for a given id include/linux/livepatch.h | 50 ++- kernel/livepatch/core.c | 39 +++ kernel/livepatch/core.h | 1 + kernel/livepatch/shadow.c | 297 +++++++++++++----- kernel/livepatch/transition.c | 4 +- lib/livepatch/test_klp_shadow_vars.c | 119 ++++--- samples/livepatch/livepatch-shadow-fix1.c | 24 +- samples/livepatch/livepatch-shadow-fix2.c | 34 +- .../selftests/livepatch/test-shadow-vars.sh | 2 +- 9 files changed, 417 insertions(+), 153 deletions(-) -- 2.37.3