Folks, This is the forth part of the rework series. Part 3 can be found here:
https://lore.kernel.org/r/20200505134354.774943...@linutronix.de The series has a total of 138 patches and is split into 5 parts. The base for this 4th series is: git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v4-part-3 The full series with all parts applied is available here: git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v4-part-5 The forth part, i.e. this series is available from: git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git entry-v4-part-4 This part contains the modifications for complex and nasty exceptions and traps: - Conversion of int3 including a full isolation of the text poke handler so it is fully self contained, i.e does not call out into any instrumentable code. - Conversion of NMI handling including protection against instrumentation - Conversion of #DB with separation of the user and kernel mode entries - Conversion of #MC and #DF The objtool check for the noinstr.text correctness is not yet added to the build machinery and has to be invoked manually for now: objtool check -fal vmlinux.o The checking only works for builtin code as objtool cannot do a combined analysis of vmlinux.o and a module.o Thanks, tglx 8<---------- arch/x86/entry/entry_32.S | 38 ---- arch/x86/entry/entry_64.S | 35 +--- arch/x86/include/asm/desc.h | 8 arch/x86/include/asm/idtentry.h | 235 +++++++++++++++++++++++++++++ arch/x86/include/asm/mce.h | 2 arch/x86/include/asm/ptrace.h | 2 arch/x86/include/asm/text-patching.h | 11 - arch/x86/include/asm/traps.h | 23 -- arch/x86/kernel/alternative.c | 25 +-- arch/x86/kernel/cpu/common.c | 6 arch/x86/kernel/cpu/mce/core.c | 91 ++++++++--- arch/x86/kernel/cpu/mce/inject.c | 4 arch/x86/kernel/cpu/mce/internal.h | 2 arch/x86/kernel/cpu/mce/p5.c | 8 arch/x86/kernel/cpu/mce/winchip.c | 8 arch/x86/kernel/doublefault_32.c | 10 - arch/x86/kernel/hw_breakpoint.c | 6 arch/x86/kernel/idt.c | 22 +- arch/x86/kernel/nmi.c | 14 - arch/x86/kernel/traps.c | 283 ++++++++++++++++++++++++----------- arch/x86/kvm/vmx/vmx.c | 2 arch/x86/xen/enlighten_pv.c | 17 +- arch/x86/xen/xen-asm_64.S | 12 - include/linux/bsearch.h | 26 ++- kernel/time/timekeeping.c | 2 lib/bsearch.c | 22 -- 26 files changed, 615 insertions(+), 299 deletions(-)