[GIT PULL] x86/mm changes for v5.2

From: Ingo Molnar
Date: Mon May 06 2019 - 06:41:21 EST


Linus,

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

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

# HEAD: caa841360134f863987f2d4f77b8dc2fbb7596f8 x86/mm: Initialize PGD cache during mm initialization

The changes in this tree are:

- text_poke() fixes and an extensive set of executability lockdowns, to
(hopefully) eliminate the last residual circumstances under which we
are using W|X mappings even temporarily on x86 kernels. This required
a broad range of surgery in text patching facilities, module loading,
trampoline handling and other bits.

- Tweak page fault messages to be more informative and more structured.

- Remove DISCONTIGMEM support on x86-32 and make SPARSEMEM the default.

- Reduce KASLR granularity on 5-level paging kernels from 512 GB to 1 GB.

- Misc other changes and updates.

out-of-topic modifications in x86-mm-for-linus:
-------------------------------------------------
arch/Kconfig # d253ca0c3865: x86/mm/cpa: Add set_direct_m
include/asm-generic/pgtable.h # caa841360134: x86/mm: Initialize PGD cache
include/asm-generic/tlb.h # 5932c9fd19e6: mm/tlb: Provide default nmi_
include/linux/filter.h # d53d2f78cead: bpf: Use vmalloc special fla
# f2c65fb3221a: x86/modules: Avoid breaking
include/linux/mm.h # d63326928611: mm/hibernation: Make hiberna
include/linux/sched/task.h # 13585fa0668c: fork: Provide a function for
include/linux/set_memory.h # d253ca0c3865: x86/mm/cpa: Add set_direct_m
include/linux/uprobes.h # aad42dd44db0: uprobes: Initialize uprobes
include/linux/vmalloc.h # 868b104d7379: mm/vmalloc: Add flag for fre
kernel/bpf/core.c # d53d2f78cead: bpf: Use vmalloc special fla
kernel/events/uprobes.c # aad42dd44db0: uprobes: Initialize uprobes
kernel/module.c # 1a7b7d922081: modules: Use vmalloc special
# f2c65fb3221a: x86/modules: Avoid breaking
kernel/power/snapshot.c # d63326928611: mm/hibernation: Make hiberna
kernel/trace/bpf_trace.c # c7b6f29b6257: bpf: Fail bpf_probe_write_us
mm/page_alloc.c # d63326928611: mm/hibernation: Make hiberna
mm/vmalloc.c # 868b104d7379: mm/vmalloc: Add flag for fre

Thanks,

Ingo

------------------>
Andy Lutomirski (1):
x86/mm: Introduce temporary mm structs

Baoquan He (2):
x86/mm/KASLR: Use only one PUD entry for real mode trampoline
x86/mm/KASLR: Reduce randomization granularity for 5-level paging to 1GB

Borislav Petkov (1):
x86/fault: Make fault messages more succinct

Jiri Kosina (1):
x86/mm: Remove in_nmi() warning from 64-bit implementation of vmalloc_fault()

Kees Cook (1):
x86/build: Move _etext to actual end of .text

Mike Rapoport (2):
x86/Kconfig: Make SPARSEMEM default for 32-bit x86
x86/Kconfig: Deprecate DISCONTIGMEM support for 32-bit x86

Nadav Amit (18):
x86/mm/tlb: Remove 'struct flush_tlb_info' from the stack
x86/alternatives: Add text_poke_kgdb() to not assert the lock when debugging
mm/tlb: Provide default nmi_uaccess_okay()
bpf: Fail bpf_probe_write_user() while mm is switched
x86/jump_label: Use text_poke_early() during early init
x86/mm: Save debug registers when loading a temporary mm
uprobes: Initialize uprobes earlier
fork: Provide a function for copying init_mm
x86/alternatives: Initialize temporary mm for patching
x86/alternatives: Use temporary mm for text poking
x86/kgdb: Avoid redundant comparison of patched code
x86/ftrace: Set trampoline pages as executable
x86/kprobes: Set instruction page as executable
x86/modules: Avoid breaking W^X while loading modules
x86/jump-label: Remove support for custom text poker
x86/alternatives: Remove the return value of text_poke_*()
x86/alternatives: Add comment about module removal races
x86/mm: Initialize PGD cache during mm initialization

Rick Edgecombe (7):
x86/mm/cpa: Add set_direct_map_*() functions
mm/hibernation: Make hibernation handle unmapped pages
mm/vmalloc: Add flag for freeing of special permsissions
modules: Use vmalloc special flag
bpf: Use vmalloc special flag
x86/ftrace: Use vmalloc special flag
x86/kprobes: Use vmalloc special flag

Sean Christopherson (2):
x86/fault: Reword initial BUG message for unhandled page faults
x86/fault: Decode and print #PF oops in human readable form

Stephen Kitt (1):
x86/mm: Fix the 56-bit addresses memory map in Documentation/x86/x86_64/mm.txt


Documentation/x86/x86_64/mm.txt | 6 +-
arch/Kconfig | 4 +
arch/x86/Kconfig | 11 +-
arch/x86/include/asm/fixmap.h | 2 -
arch/x86/include/asm/mmu_context.h | 56 ++++++++++
arch/x86/include/asm/pgtable.h | 3 +
arch/x86/include/asm/set_memory.h | 3 +
arch/x86/include/asm/text-patching.h | 7 +-
arch/x86/include/asm/tlbflush.h | 2 +
arch/x86/kernel/alternative.c | 201 +++++++++++++++++++++++++++--------
arch/x86/kernel/ftrace.c | 22 ++--
arch/x86/kernel/jump_label.c | 21 ++--
arch/x86/kernel/kgdb.c | 25 ++---
arch/x86/kernel/kprobes/core.c | 19 +++-
arch/x86/kernel/module.c | 2 +-
arch/x86/kernel/vmlinux.lds.S | 6 +-
arch/x86/mm/fault.c | 55 ++++------
arch/x86/mm/init.c | 37 +++++++
arch/x86/mm/kaslr.c | 94 +++++++---------
arch/x86/mm/pageattr.c | 16 +--
arch/x86/mm/pgtable.c | 10 +-
arch/x86/mm/tlb.c | 116 ++++++++++++++------
arch/x86/xen/mmu_pv.c | 2 -
include/asm-generic/pgtable.h | 2 +
include/asm-generic/tlb.h | 9 ++
include/linux/filter.h | 18 +---
include/linux/mm.h | 18 ++--
include/linux/sched/task.h | 1 +
include/linux/set_memory.h | 11 ++
include/linux/uprobes.h | 5 +
include/linux/vmalloc.h | 15 +++
init/main.c | 6 ++
kernel/bpf/core.c | 1 -
kernel/events/uprobes.c | 8 +-
kernel/fork.c | 25 +++--
kernel/module.c | 82 +++++++-------
kernel/power/snapshot.c | 5 +-
kernel/trace/bpf_trace.c | 8 ++
mm/page_alloc.c | 7 +-
mm/vmalloc.c | 113 ++++++++++++++++----
40 files changed, 711 insertions(+), 343 deletions(-)