[GIT PULL] x86 fixes

From: Ingo Molnar
Date: Sun Dec 01 2019 - 17:23:16 EST


Linus,

Please pull the latest x86-urgent-for-linus git tree from:

git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-urgent-for-linus

# HEAD: 91298f1a302dad0f0f630413c812818636faa8a0 x86/mm/pat: Fix off-by-one bugs in interval tree search

Various fixes:

- Fix the PAT performance regression that downgraded write-combining
device memory regions to uncached.

- There's been a number of bugs in 32-bit double fault handling -
hopefully all fixed now.

- Fix an LDT crash

- Fix an FPU over-optimization that broke with GCC9 code optimizations.

- Misc cleanups

Thanks,

Ingo

------------------>
Andy Lutomirski (9):
selftests/x86/single_step_syscall: Check SYSENTER directly
lkdtm: Add a DOUBLE_FAULT crash type on x86
x86/traps: Disentangle the 32-bit and 64-bit doublefault code
x86/doublefault/32: Rename doublefault.c to doublefault_32.c
x86/doublefault/32: Move #DF stack and TSS to cpu_entry_area
x86/doublefault/32: Rewrite the x86_32 #DF handler and unify with 64-bit
x86/traps: die() instead of panicking on a double fault
x86/ptrace: Remove set_segment_reg() implementations for current
x86/ptrace: Document FSBASE and GSBASE ABI oddities

Borislav Petkov (2):
x86/entry/32: Remove unused 'restore_all_notrace' local label
x86/ioperm: Save an indentation level in tss_update_io_bitmap()

Ingo Molnar (1):
x86/mm/pat: Fix off-by-one bugs in interval tree search

Joerg Roedel (1):
x86/mm/32: Sync only to VMALLOC_END in vmalloc_sync_all()

Sebastian Andrzej Siewior (1):
x86/fpu: Don't cache access to fpu_fpregs_owner_ctx


arch/x86/Kconfig.debug | 2 +-
arch/x86/entry/entry_32.S | 43 ++++++-
arch/x86/include/asm/cpu_entry_area.h | 12 ++
arch/x86/include/asm/doublefault.h | 13 +++
arch/x86/include/asm/fpu/internal.h | 2 +-
arch/x86/include/asm/pgtable_32_types.h | 7 +-
arch/x86/include/asm/processor.h | 2 -
arch/x86/include/asm/traps.h | 3 +
arch/x86/kernel/Makefile | 4 +-
arch/x86/kernel/cpu/common.c | 12 +-
arch/x86/kernel/doublefault.c | 86 --------------
arch/x86/kernel/doublefault_32.c | 136 ++++++++++++++++++++++
arch/x86/kernel/dumpstack_32.c | 30 +++++
arch/x86/kernel/process.c | 52 ++++-----
arch/x86/kernel/ptrace.c | 36 ++++--
arch/x86/kernel/traps.c | 31 +++--
arch/x86/mm/cpu_entry_area.c | 14 ++-
arch/x86/mm/fault.c | 2 +-
arch/x86/mm/pat_interval.c | 12 +-
drivers/misc/lkdtm/bugs.c | 39 +++++++
drivers/misc/lkdtm/core.c | 3 +
drivers/misc/lkdtm/lkdtm.h | 3 +
tools/testing/selftests/x86/single_step_syscall.c | 94 +++++++++++++--
23 files changed, 467 insertions(+), 171 deletions(-)
create mode 100644 arch/x86/include/asm/doublefault.h
delete mode 100644 arch/x86/kernel/doublefault.c
create mode 100644 arch/x86/kernel/doublefault_32.c