Linus, please pull from git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching.git for-linus to receive live patching updates for 4.12 merge window. Notice (not to go into the merge log): all the patches that are touching other code (especially arch-specific) have been Reviewed/Acked by the appropriate maintainer(s). There are three minor merge conflicts pending (as reported in linux-next); the respective reports are: http://lkml.kernel.org/r/20170322134123.73f29daa@xxxxxxxxxxxxxxxx http://lkml.kernel.org/r/20170323142734.38b03846@xxxxxxxxxxxxxxxx http://lkml.kernel.org/r/20170328151341.7ab5a45b@xxxxxxxxxxxxxxxx All three are more or less of a same nature (adding defines for constants or structure fields to a similar place, and one context conflict) and very easy to resolve. Currently the only one that has already landed in your tree is the first one; the two other you'll be getting while merging s390 and security trees. If you want me to prepare a branch for you to pull with the resolved conflict(s), please let me know. Thanks. ===== - per-task consistency model is being added for architectures that support reliable stack dumping (extending this, currently rather trivial set, is currently in the works). This extends the nature of the types of patches that can be applied by live patching infrastructure. The code stems from the design proposal made [1] back in November 2014. It's a hybrid of SUSE's kGraft and RH's kpatch, combining advantages of both: it uses kGraft's per-task consistency and syscall barrier switching combined with kpatch's stack trace switching. There are also a number of fallback options which make it quite flexible. Most of the heavy lifting done by Josh Poimboeuf with help from Miroslav Benes and Petr Mladek - patch module load time optimization from Zhou Chengming - a few assorted small fixes [1] https://lkml.kernel.org/r/20141107140458.GA21774@xxxxxxx ===== ---------------------------------------------------------------- Jiri Kosina (1): livepatch: make klp_mutex proper part of API Jiri Slaby (1): livepatch/s390: reorganize TIF thread flag bits Josh Poimboeuf (14): stacktrace/x86: add function for detecting reliable stack traces x86/entry: define _TIF_ALLWORK_MASK flags explicitly livepatch: create temporary klp_update_patch_state() stub livepatch/x86: add TIF_PATCH_PENDING thread flag livepatch/powerpc: add TIF_PATCH_PENDING thread flag livepatch: separate enabled and patched states livepatch: remove unnecessary object loaded check livepatch: move patching functions into patch.c livepatch: use kstrtobool() in enabled_store() livepatch: store function sizes livepatch: change to a per-task consistency model livepatch: add /proc/<pid>/patch_state livepatch: allow removal of a disabled patch livepatch: add missing printk newlines Miroslav Benes (1): livepatch/s390: add TIF_PATCH_PENDING thread flag Petr Mladek (1): livepatch: Cancel transition a safe way for immediate patches Zhou Chengming (1): livepatch: Reduce the time of finding module symbols Documentation/ABI/testing/sysfs-kernel-livepatch | 8 + Documentation/filesystems/proc.txt | 18 + Documentation/livepatch/livepatch.txt | 214 +++++++-- arch/Kconfig | 6 + arch/powerpc/include/asm/thread_info.h | 4 +- arch/powerpc/kernel/signal.c | 4 + arch/s390/include/asm/thread_info.h | 24 +- arch/s390/kernel/entry.S | 31 +- arch/x86/Kconfig | 1 + arch/x86/entry/common.c | 9 +- arch/x86/include/asm/thread_info.h | 13 +- arch/x86/include/asm/unwind.h | 6 + arch/x86/kernel/stacktrace.c | 96 +++- arch/x86/kernel/unwind_frame.c | 2 + fs/proc/base.c | 15 + include/linux/init_task.h | 9 + include/linux/livepatch.h | 68 ++- include/linux/sched.h | 3 + include/linux/stacktrace.h | 9 +- kernel/fork.c | 3 + kernel/livepatch/Makefile | 2 +- kernel/livepatch/core.c | 450 +++++++----------- kernel/livepatch/core.h | 6 + kernel/livepatch/patch.c | 272 +++++++++++ kernel/livepatch/patch.h | 33 ++ kernel/livepatch/transition.c | 553 +++++++++++++++++++++++ kernel/livepatch/transition.h | 14 + kernel/sched/idle.c | 4 + kernel/stacktrace.c | 12 +- samples/livepatch/livepatch-sample.c | 18 +- 30 files changed, 1548 insertions(+), 359 deletions(-) create mode 100644 kernel/livepatch/core.h create mode 100644 kernel/livepatch/patch.c create mode 100644 kernel/livepatch/patch.h create mode 100644 kernel/livepatch/transition.c create mode 100644 kernel/livepatch/transition.h -- Jiri Kosina SUSE Labs -- To unsubscribe from this list: send the line "unsubscribe live-patching" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html