So it turns out that this is quite a lot easier than I feared. Only compile-tested on ARM, but functionally tested on x86.
Andrew Cooper (5): arm/alternatives: Fix apply_alternatives() API xen/alternatives: Plumb a 'live' parameter through apply_alternatives() x86/livepatch: Use text_poke() and plumb a live parameter through x86/alternative: Implement NMI/#MC-safe patching DO-NOT-APPLY - Demonstrates an NMI hitting an in-progress patch xen/arch/arm/alternative.c | 20 +++--- xen/arch/x86/alternative.c | 131 ++++++++++++++++++++++++++++++++++++-- xen/arch/x86/livepatch.c | 8 +-- xen/arch/x86/traps.c | 2 + xen/arch/x86/x86_64/entry.S | 38 ++++++++++- xen/common/livepatch.c | 2 +- xen/include/asm-arm/alternative.h | 9 ++- xen/include/asm-x86/alternative.h | 5 +- xen/include/asm-x86/processor.h | 2 + 9 files changed, 187 insertions(+), 30 deletions(-) -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel