# git rev-parse -q --verify caf9a82657b313106aae8f4a35936c116a152299^{commit} caf9a82657b313106aae8f4a35936c116a152299 already have revision, skipping fetch # git checkout -q -f -B kisskb caf9a82657b313106aae8f4a35936c116a152299 # git clean -qxdf # git log -1 commit caf9a82657b313106aae8f4a35936c116a152299 Merge: 9c294ec f6c4fd5 Author: Linus Torvalds Date: Sat Dec 23 11:53:04 2017 -0800 Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 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 ... # < /opt/cross/kisskb/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < git log --format=%s --max-count=1 caf9a82657b313106aae8f4a35936c116a152299 # < make -j 48 ARCH=x86_64 O=/home/kisskb/slave/build/linus_x86_64-randconfig_x86_64 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux- randconfig KCONFIG_SEED=0xC4E54C16 # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # Added to kconfig CONFIG_CC_STACKPROTECTOR_STRONG=n # Added to kconfig CONFIG_GCC_PLUGINS=n # Added to kconfig CONFIG_GCC_PLUGIN_CYC_COMPLEXITY=n # Added to kconfig CONFIG_GCC_PLUGIN_SANCOV=n # Added to kconfig CONFIG_GCC_PLUGIN_LATENT_ENTROPY=n # yes \n | make -j 48 ARCH=x86_64 O=/home/kisskb/slave/build/linus_x86_64-randconfig_x86_64 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux- oldconfig yes: standard output: Broken pipe yes: write error # make -j 48 ARCH=x86_64 O=/home/kisskb/slave/build/linus_x86_64-randconfig_x86_64 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux- make[1]: Entering directory '/home/kisskb/slave/build/linus_x86_64-randconfig_x86_64' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig scripts/Makefile.gcc-plugins:24: warning: cannot use CONFIG_KCOV: -fsanitize-coverage=trace-pc is not supported by compiler SYSTBL arch/x86/include/generated/asm/syscalls_32.h SYSHDR arch/x86/include/generated/asm/unistd_32_ia32.h SYSTBL arch/x86/include/generated/asm/syscalls_64.h SYSHDR arch/x86/include/generated/asm/unistd_64_x32.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h CHK include/config/kernel.release HOSTCC scripts/basic/bin2c GEN ./Makefile WRAP arch/x86/include/generated/uapi/asm/bpf_perf_event.h CHK include/generated/uapi/linux/version.h UPD include/generated/uapi/linux/version.h gcc: error trying to exec 'cc1plus': execvp: No such file or directory Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing? scripts/Makefile.gcc-plugins:69: recipe for target 'gcc-plugins-check' failed make[1]: *** [gcc-plugins-check] Error 1 make[1]: *** Waiting for unfinished jobs.... DESCEND objtool HOSTCC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/fixdep.o HOSTLD /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/fixdep-in.o LINK /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/fixdep CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/builtin-check.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/builtin-orc.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/check.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/orc_gen.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/orc_dump.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/elf.o MKDIR /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/arch/x86/lib/ CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/special.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/objtool.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/libstring.o GEN /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/arch/x86/lib/inat-tables.c CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/str_error_r.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/exec-cmd.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/help.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/pager.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/parse-options.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/run-command.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/sigchain.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/arch/x86/decode.o CC /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/subcmd-config.o UPD include/config/kernel.release LD /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/arch/x86/objtool-in.o LD /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/libsubcmd-in.o AR /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/libsubcmd.a LD /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/objtool-in.o LINK /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64/tools/objtool/objtool make[1]: Leaving directory '/home/kisskb/slave/build/linus_x86_64-randconfig_x86_64' Makefile:146: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -j 48 ARCH=x86_64 O=/home/kisskb/slave/build/linus_x86_64-randconfig_x86_64 CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/x86_64-linux/bin/x86_64-linux- ' returned non-zero exit status 2 # rm -rf /home/kisskb/slave/build/linus_x86_64-randconfig_x86_64 # Build took: 0:00:05.092648