Messages in this thread | | | Date | Mon, 1 May 2017 14:00:53 +0200 | From | Ingo Molnar <> | Subject | [GIT PULL] x86/mm changes for v4.12 |
| |
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: 71389703839ebe9cb426c72d5f0bd549592e583c mm, zone_device: Replace {get, put}_zone_device_page() with a single reference to fix pmem crash
NOTE: due to a very busy cycle within the x86 tree, this tree grew a number of dependencies and thus depends on you having pulled the following v4.12 trees:
x86-process-for-linus x86-cpu-for-linus x86-boot-for-linus
If you did not pull some of those trees then please disregard this pull request, I'll rework it all!
The main x86 MM changes in this cycle were:
- Continued native kernel PCID support preparation patches to the TLB flushing code (Andy Lutomirski)
- Various fixes related to 32-bit compat syscall returning address over 4Gb in applications, launched from 64-bit binaries - motivated by C/R frameworks such as Virtuozzo. (Dmitry Safonov)
- Continued Intel 5-level paging enablement: in particular the conversion of x86 GUP to the generic GUP code. (Kirill A. Shutemov)
- x86/mpx ABI corner case fixes/enhancements (Joerg Roedel)
- ... plus misc updates, fixes and cleanups.
I'd like to draw special attention to this late MM commit:
71389703839e: mm, zone_device: Replace {get, put}_zone_device_page() with a single reference to fix pmem crash
... which is a late fix, and which I believe is the right thing to do - but please double check.
Thanks,
Ingo
------------------>
Andy Lutomirski (12): x86/tls: Forcibly set the accessed bit in TLS segments selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug x86/gdt: Fix setup_fixmap_gdt() to use the correct PA x86/efi/32: Fix EFI on systems where the per-cpu GDT is virtually mapped x86/boot/32: Defer resyncing initial_page_table until per-cpu is set up x86/gdt: Get rid of the get_*_gdt_*_vaddr() helpers x86/xen/gdt: Use X86_FEATURE_XENPV instead of globals for the GDT fixup x86/boot/32: Rewrite test_wp_bit() x86/vm86/32: Switch to flush_tlb_mm_range() in mark_screen_rdonly() x86/mm: Remove flush_tlb() and flush_tlb_current_task() x86/mm: Make flush_tlb_mm_range() more predictable x86/mm: Fix flush_tlb_page() on Xen
Borislav Petkov (1): x86/boot/32: Flip the logic in test_wp_bit()
Colin King (1): x86/boot/e820: Remove a redundant self assignment
Dan Williams (1): mm, zone_device: Replace {get, put}_zone_device_page() with a single reference to fix pmem crash
Dmitry Safonov (6): x86/mm: Introduce arch_rnd() to compute 32/64 mmap random base x86/mm: Add task_size parameter to mmap_base() x86/mm: Introduce mmap_compat_base() for 32-bit mmap() x86/mm: Make mmap(MAP_32BIT) work correctly x86/hugetlb: Adjust to the new native/compat mmap bases x86/mm: Make in_compat_syscall() work during exec
Ingo Molnar (6): Merge branch 'linus' into x86/mm, to pick up a bugfix Merge branch 'x86/process' into x86/mm, to create new base for further patches Merge branch 'x86/cpu' into x86/mm, before applying dependent patch Merge tag 'v4.11-rc5' into x86/mm, to refresh the branch Merge branch 'x86/boot' into x86/mm, to avoid conflict Revert "x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation"
Joerg Roedel (2): x86/mpx: Correctly report do_mpx_bt_fault() failures to user-space x86/mpx, selftests: Only check bounds-vs-shadow when we keep shadow
Juergen Gross (1): x86/mm: Fix dump pagetables for 4 levels of page tables
Kirill A. Shutemov (28): x86/mm: Extend headers with basic definitions to support 5-level paging x86/mm: Convert trivial cases of page table walk to 5-level paging x86/mm/gup: Add 5-level paging support x86/mm/ident_map: Add 5-level paging support x86/mm/vmalloc: Add 5-level paging support x86/power: Add 5-level paging support mm/gup: Drop the arch_pte_access_permitted() MMU callback mm/gup: Move permission checks into helpers mm/gup: Move page table entry dereference into helper function mm/gup: Mark all pages PageReferenced in generic get_user_pages_fast() mm/gup: Implement the dev_pagemap() logic in the generic get_user_pages_fast() function mm/gup: Provide callback to check if __GUP_fast() is allowed for the range x86/mm/gup: Switch GUP to the generic get_user_page_fast() implementation x86/kexec: Add 5-level paging support x86/efi: Add 5-level paging support x86/mm/pat: Add 5-level paging support x86/kasan: Prepare clear_pgds() to switch to <asm-generic/pgtable-nop4d.h> x86: Convert the rest of the code to support p4d_t mm: Fix false-positive VM_BUG_ON() in page_cache_{get,add}_speculative() x86/dump_pagetables: Add support for 5-level paging x86/boot: Detect 5-level paging support x86/asm: Remove __VIRTUAL_MASK_SHIFT==47 assert x86/mm: Define virtual memory map for 5-level paging x86/paravirt: Add 5-level support to the paravirt code x86/mm: Add basic defines/helpers for CONFIG_X86_5LEVEL=y x86/kasan: Extend KASAN to support 5-level paging x86/espfix: Add support for 5-level paging x86/mm/64: Fix crash in remove_pagetable()
Thomas Garnier (5): x86/mm: Adapt MODULES_END based on fixmap section size x86: Remap GDT tables in the fixmap section x86: Make the GDT remapping read-only on 64-bit x86/mm: Correct fixmap header usage on adaptable MODULES_END x86/headers: Simplify asm/fixmap.h inclusion into asm/pgtable*.h
Thomas Gleixner (1): Revert "x86/mm/numa: Remove numa_nodemask_from_meminfo()"
Wei Yang (2): x86/mm/numa: Improve alloc_node_data() error path message x86/mm/numa: Remove numa_nodemask_from_meminfo()
Xiong Zhang (1): x86/xen: Change __xen_pgd_walk() and xen_cleanmfnmap() to support p4d
Documentation/x86/x86_64/mm.txt | 36 ++- arch/Kconfig | 7 + arch/powerpc/include/asm/mmu_context.h | 6 - arch/s390/include/asm/mmu_context.h | 6 - arch/um/include/asm/mmu_context.h | 6 - arch/unicore32/include/asm/mmu_context.h | 6 - arch/x86/Kconfig | 2 + arch/x86/boot/cpucheck.c | 9 + arch/x86/boot/cpuflags.c | 12 +- arch/x86/entry/entry_64.S | 7 +- arch/x86/entry/vdso/vma.c | 2 +- arch/x86/include/asm/desc.h | 147 +++++++--- arch/x86/include/asm/disabled-features.h | 8 +- arch/x86/include/asm/elf.h | 28 +- arch/x86/include/asm/fixmap.h | 4 + arch/x86/include/asm/kasan.h | 9 +- arch/x86/include/asm/kexec.h | 1 + arch/x86/include/asm/mmu_context.h | 4 - arch/x86/include/asm/page_64_types.h | 10 + arch/x86/include/asm/paravirt.h | 54 +++- arch/x86/include/asm/paravirt_types.h | 17 +- arch/x86/include/asm/pgalloc.h | 37 ++- arch/x86/include/asm/pgtable-2level_types.h | 1 + arch/x86/include/asm/pgtable-3level_types.h | 1 + arch/x86/include/asm/pgtable.h | 84 +++++- arch/x86/include/asm/pgtable_32.h | 1 - arch/x86/include/asm/pgtable_64.h | 23 +- arch/x86/include/asm/pgtable_64_types.h | 32 ++- arch/x86/include/asm/pgtable_types.h | 46 +++- arch/x86/include/asm/processor.h | 6 +- arch/x86/include/asm/required-features.h | 8 +- arch/x86/include/asm/sparsemem.h | 9 +- arch/x86/include/asm/stackprotector.h | 2 +- arch/x86/include/asm/tlbflush.h | 9 - arch/x86/include/asm/xen/page.h | 8 +- arch/x86/kernel/acpi/sleep.c | 2 +- arch/x86/kernel/apm_32.c | 6 +- arch/x86/kernel/cpu/common.c | 59 ++++- arch/x86/kernel/e820.c | 1 - arch/x86/kernel/espfix_64.c | 12 +- arch/x86/kernel/machine_kexec_32.c | 4 +- arch/x86/kernel/machine_kexec_64.c | 14 +- arch/x86/kernel/paravirt.c | 13 +- arch/x86/kernel/process_64.c | 67 +++-- arch/x86/kernel/setup.c | 15 -- arch/x86/kernel/setup_percpu.c | 23 +- arch/x86/kernel/smpboot.c | 2 +- arch/x86/kernel/sys_x86_64.c | 15 +- arch/x86/kernel/tboot.c | 6 +- arch/x86/kernel/tls.c | 11 +- arch/x86/kernel/vm86_32.c | 8 +- arch/x86/kvm/svm.c | 4 +- arch/x86/kvm/vmx.c | 12 +- arch/x86/mm/dump_pagetables.c | 59 ++++- arch/x86/mm/fault.c | 66 ++++- arch/x86/mm/gup.c | 33 ++- arch/x86/mm/hugetlbpage.c | 9 +- arch/x86/mm/ident_map.c | 51 +++- arch/x86/mm/init_32.c | 68 ++--- arch/x86/mm/init_64.c | 185 ++++++++++--- arch/x86/mm/ioremap.c | 3 +- arch/x86/mm/kasan_init_64.c | 33 ++- arch/x86/mm/mmap.c | 125 ++++++--- arch/x86/mm/mpx.c | 10 +- arch/x86/mm/numa.c | 4 +- arch/x86/mm/pageattr.c | 54 +++- arch/x86/mm/pgtable.c | 36 ++- arch/x86/mm/pgtable_32.c | 8 +- arch/x86/mm/tlb.c | 33 +-- arch/x86/platform/efi/efi_32.c | 4 +- arch/x86/platform/efi/efi_64.c | 41 ++- arch/x86/power/cpu.c | 7 +- arch/x86/power/hibernate_32.c | 7 +- arch/x86/power/hibernate_64.c | 47 +++- arch/x86/xen/enlighten.c | 2 +- arch/x86/xen/mmu.c | 398 +++++++++++++++++----------- arch/x86/xen/mmu.h | 1 + arch/x86/xen/smp.c | 2 +- drivers/dax/pmem.c | 2 +- drivers/lguest/x86/core.c | 6 +- drivers/nvdimm/pmem.c | 13 +- drivers/pnp/pnpbios/bioscalls.c | 10 +- include/asm-generic/mm_hooks.h | 6 - include/asm-generic/pgtable.h | 25 ++ include/linux/mm.h | 18 +- include/linux/mm_types.h | 5 + include/linux/pagemap.h | 4 +- include/trace/events/xen.h | 28 +- kernel/memremap.c | 22 +- mm/gup.c | 148 +++++++++-- mm/swap.c | 10 + tools/testing/selftests/x86/ldt_gdt.c | 46 ++++ tools/testing/selftests/x86/mpx-mini-test.c | 5 +- 93 files changed, 1845 insertions(+), 711 deletions(-)
| |