forked from Minki/linux
caf9a82657
Pull x86 PTI preparatory patches from Thomas Gleixner: "Todays Advent calendar window contains twentyfour easy to digest patches. The original plan was to have twenty three matching the date, but a late fixup made that moot. - Move the cpu_entry_area mapping out of the fixmap into a separate address space. That's necessary because the fixmap becomes too big with NRCPUS=8192 and this caused already subtle and hard to diagnose failures. The top most patch is fresh from today and cures a brain slip of that tall grumpy german greybeard, who ignored the intricacies of 32bit wraparounds. - Limit the number of CPUs on 32bit to 64. That's insane big already, but at least it's small enough to prevent address space issues with the cpu_entry_area map, which have been observed and debugged with the fixmap code - A few TLB flush fixes in various places plus documentation which of the TLB functions should be used for what. - Rename the SYSENTER stack to CPU_ENTRY_AREA stack as it is used for more than sysenter now and keeping the name makes backtraces confusing. - Prevent LDT inheritance on exec() by moving it to arch_dup_mmap(), which is only invoked on fork(). - Make vysycall more robust. - A few fixes and cleanups of the debug_pagetables code. Check PAGE_PRESENT instead of checking the PTE for 0 and a cleanup of the C89 initialization of the address hint array which already was out of sync with the index enums. - Move the ESPFIX init to a different place to prepare for PTI. - Several code moves with no functional change to make PTI integration simpler and header files less convoluted. - Documentation fixes and clarifications" * 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits) x86/cpu_entry_area: Prevent wraparound in setup_cpu_entry_area_ptes() on 32bit init: Invoke init_espfix_bsp() from mm_init() x86/cpu_entry_area: Move it out of the fixmap x86/cpu_entry_area: Move it to a separate unit x86/mm: Create asm/invpcid.h x86/mm: Put MMU to hardware ASID translation in one place x86/mm: Remove hard-coded ASID limit checks x86/mm: Move the CR3 construction functions to tlbflush.h x86/mm: Add comments to clarify which TLB-flush functions are supposed to flush what x86/mm: Remove superfluous barriers x86/mm: Use __flush_tlb_one() for kernel memory x86/microcode: Dont abuse the TLB-flush interface x86/uv: Use the right TLB-flush API x86/entry: Rename SYSENTER_stack to CPU_ENTRY_AREA_entry_stack x86/doc: Remove obvious weirdnesses from the x86 MM layout documentation x86/mm/64: Improve the memory map documentation x86/ldt: Prevent LDT inheritance on exec x86/ldt: Rework locking arch, mm: Allow arch_dup_mmap() to fail x86/vsyscall/64: Warn and fail vsyscall emulation in NATIVE mode ... |
||
---|---|---|
.. | ||
.gitignore | ||
5lvl.c | ||
check_cc.sh | ||
check_initial_reg_state.c | ||
entry_from_vm86.c | ||
fsgsbase.c | ||
ioperm.c | ||
iopl.c | ||
ldt_gdt.c | ||
Makefile | ||
mpx-debug.h | ||
mpx-dig.c | ||
mpx-hw.h | ||
mpx-mini-test.c | ||
mpx-mm.h | ||
pkey-helpers.h | ||
protection_keys.c | ||
ptrace_syscall.c | ||
raw_syscall_helper_32.S | ||
sigreturn.c | ||
single_step_syscall.c | ||
syscall_arg_fault.c | ||
syscall_nt.c | ||
sysret_rip.c | ||
sysret_ss_attrs.c | ||
test_FCMOV.c | ||
test_FCOMI.c | ||
test_FISTTP.c | ||
test_mremap_vdso.c | ||
test_syscall_vdso.c | ||
test_vdso.c | ||
thunks_32.S | ||
thunks.S | ||
trivial_32bit_program.c | ||
trivial_64bit_program.c | ||
unwind_vdso.c | ||
vdso_restorer.c |