linux-stable/arch/x86/include/asm
Linus Torvalds 40548c6b6c Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 pti updates from Thomas Gleixner:
 "This contains:

   - a PTI bugfix to avoid setting reserved CR3 bits when PCID is
     disabled. This seems to cause issues on a virtual machine at least
     and is incorrect according to the AMD manual.

   - a PTI bugfix which disables the perf BTS facility if PTI is
     enabled. The BTS AUX buffer is not globally visible and causes the
     CPU to fault when the mapping disappears on switching CR3 to user
     space. A full fix which restores BTS on PTI is non trivial and will
     be worked on.

   - PTI bugfixes for EFI and trusted boot which make sure that the user
     space visible page table entries have the NX bit cleared

   - removal of dead code in the PTI pagetable setup functions

   - add PTI documentation

   - add a selftest for vsyscall to verify that the kernel actually
     implements what it advertises.

   - a sysfs interface to expose vulnerability and mitigation
     information so there is a coherent way for users to retrieve the
     status.

   - the initial spectre_v2 mitigations, aka retpoline:

      + The necessary ASM thunk and compiler support

      + The ASM variants of retpoline and the conversion of affected ASM
        code

      + Make LFENCE serializing on AMD so it can be used as speculation
        trap

      + The RSB fill after vmexit

   - initial objtool support for retpoline

  As I said in the status mail this is the most of the set of patches
  which should go into 4.15 except two straight forward patches still on
  hold:

   - the retpoline add on of LFENCE which waits for ACKs

   - the RSB fill after context switch

  Both should be ready to go early next week and with that we'll have
  covered the major holes of spectre_v2 and go back to normality"

* 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (28 commits)
  x86,perf: Disable intel_bts when PTI
  security/Kconfig: Correct the Documentation reference for PTI
  x86/pti: Fix !PCID and sanitize defines
  selftests/x86: Add test_vsyscall
  x86/retpoline: Fill return stack buffer on vmexit
  x86/retpoline/irq32: Convert assembler indirect jumps
  x86/retpoline/checksum32: Convert assembler indirect jumps
  x86/retpoline/xen: Convert Xen hypercall indirect jumps
  x86/retpoline/hyperv: Convert assembler indirect jumps
  x86/retpoline/ftrace: Convert ftrace assembler indirect jumps
  x86/retpoline/entry: Convert entry assembler indirect jumps
  x86/retpoline/crypto: Convert crypto assembler indirect jumps
  x86/spectre: Add boot time option to select Spectre v2 mitigation
  x86/retpoline: Add initial retpoline support
  objtool: Allow alternatives to be ignored
  objtool: Detect jumps to retpoline thunks
  x86/pti: Make unpoison of pgd for trusted boot work for real
  x86/alternatives: Fix optimize_nops() checking
  sysfs/cpu: Fix typos in vulnerability documentation
  x86/cpu/AMD: Use LFENCE_RDTSC in preference to MFENCE_RDTSC
  ...
2018-01-14 09:51:25 -08:00
..
crypto
e820
fpu
numachip
trace genirq/irqdomain: Rename early argument of irq_domain_activate_irq() 2017-12-29 21:13:04 +01:00
uv
xen Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-14 09:51:25 -08:00
a.out-core.h
acenv.h
acpi.h
agp.h
alternative-asm.h
alternative.h x86/alternatives: Add missing '\n' at end of ALTERNATIVE inline asm 2018-01-05 14:01:15 +01:00
amd_nb.h
apb_timer.h
apic.h
apic_flat_64.h
apicdef.h
apm.h
arch_hweight.h
archrandom.h
asm-offsets.h
asm-prototypes.h x86/retpoline: Add initial retpoline support 2018-01-12 00:14:28 +01:00
asm.h x86/asm: Allow again using asm.h when building for the 'bpf' clang target 2017-12-18 11:56:22 -03:00
atomic.h
atomic64_32.h
atomic64_64.h
barrier.h
bios_ebda.h
bitops.h Merge commit 'upstream-x86-entry' into WIP.x86/mm 2017-12-17 12:58:53 +01:00
boot.h
bootparam_utils.h
bug.h
bugs.h
cache.h
cacheflush.h
calgary.h
ce4100.h
checksum.h
checksum_32.h
checksum_64.h
clocksource.h
cmdline.h
cmpxchg.h
cmpxchg_32.h
cmpxchg_64.h
compat.h Merge commit 'upstream-x86-entry' into WIP.x86/mm 2017-12-17 12:58:53 +01:00
cpu.h
cpu_device_id.h
cpu_entry_area.h x86/cpu_entry_area: Add debugstore entries to cpu_entry_area 2017-12-23 21:13:00 +01:00
cpufeature.h x86/cpufeatures: Make CPU bugs sticky 2017-12-17 14:27:53 +01:00
cpufeatures.h x86/retpoline: Add initial retpoline support 2018-01-12 00:14:28 +01:00
cpumask.h
crash.h
current.h
debugreg.h
delay.h
desc.h Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-12-29 17:02:49 -08:00
desc_defs.h
device.h
disabled-features.h Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-12-29 17:02:49 -08:00
div64.h
dma-mapping.h
dma.h
dmi.h
dwarf2.h
edac.h
efi.h
elf.h
emergency-restart.h
entry_arch.h
espfix.h init: Invoke init_espfix_bsp() from mm_init() 2017-12-22 20:13:05 +01:00
exec.h
export.h
extable.h
fb.h
fixmap.h x86/cpu_entry_area: Move it out of the fixmap 2017-12-22 20:13:05 +01:00
floppy.h
frame.h
ftrace.h
futex.h
gart.h
genapic.h
geode.h
hardirq.h
highmem.h
hpet.h
hugetlb.h
hw_breakpoint.h
hw_irq.h x86/PCI: Remove unused HyperTransport interrupt support 2017-11-23 20:18:18 +01:00
hypervisor.h x86/paravirt: Provide a way to check for hypervisors 2017-12-17 14:27:52 +01:00
i8259.h
ia32.h
ia32_unistd.h
imr.h
inat.h
inat_types.h
init.h
insn-eval.h x86/umip: Fix insn_get_code_seg_params()'s return value 2017-11-23 20:17:59 +01:00
insn.h
inst.h
intel-family.h
intel-mid.h
intel_ds.h x86/cpu_entry_area: Add debugstore entries to cpu_entry_area 2017-12-23 21:13:00 +01:00
intel_mid_vrtc.h
intel_pmc_ipc.h
intel_pt.h
intel_punit_ipc.h
intel_rdt_sched.h
intel_scu_ipc.h
intel_telemetry.h
invpcid.h x86/mm: Create asm/invpcid.h 2017-12-22 20:13:04 +01:00
io.h
io_apic.h
iomap.h
iommu.h
iommu_table.h
iosf_mbi.h
ipi.h
irq.h
irq_regs.h
irq_remapping.h
irq_vectors.h
irq_work.h
irqdomain.h genirq/irqdomain: Rename early argument of irq_domain_activate_irq() 2017-12-29 21:13:04 +01:00
irqflags.h x86/entry/64/paravirt: Use paravirt-safe macro to access eflags 2017-12-17 13:59:52 +01:00
ist.h
jump_label.h
kasan.h
kaslr.h
kbdleds.h
Kbuild
kdebug.h x86/unwinder: Handle stack overflows more gracefully 2017-12-17 13:59:52 +01:00
kexec-bzimage64.h
kexec.h
kgdb.h
kmap_types.h
kprobes.h
kvm_emulate.h x86,kvm: remove KVM emulator get_fpu / put_fpu 2017-12-05 21:20:24 +01:00
kvm_guest.h
kvm_host.h KVM: x86: fix APIC page invalidation 2017-12-06 16:10:34 +01:00
kvm_page_track.h
kvm_para.h
kvmclock.h
linkage.h
livepatch.h
local.h
local64.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mce.h
mem_encrypt.h
microcode.h
microcode_amd.h
microcode_intel.h
misc.h
mmconfig.h
mmu.h x86/ldt: Rework locking 2017-12-22 20:13:01 +01:00
mmu_context.h x86/pti: Put the LDT in its own PGD if PTI is on 2017-12-23 21:13:00 +01:00
mmx.h
mmzone.h
mmzone_32.h
mmzone_64.h
module.h Merge commit 'upstream-x86-entry' into WIP.x86/mm 2017-12-17 12:58:53 +01:00
mpspec.h
mpspec_def.h
mpx.h
mshyperv.h Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-14 09:51:25 -08:00
msi.h
msidef.h
msr-index.h Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-14 09:51:25 -08:00
msr-trace.h
msr.h
mtrr.h
mwait.h
nmi.h
nops.h
nospec-branch.h x86/retpoline: Fill return stack buffer on vmexit 2018-01-12 12:33:37 +01:00
numa.h
numa_32.h
olpc.h
olpc_ofw.h
orc_lookup.h
orc_types.h
page.h
page_32.h
page_32_types.h
page_64.h
page_64_types.h
page_types.h
paravirt.h x86/entry/64/paravirt: Use paravirt-safe macro to access eflags 2017-12-17 13:59:52 +01:00
paravirt_types.h Merge commit 'upstream-x86-entry' into WIP.x86/mm 2017-12-17 12:58:53 +01:00
parport.h
pat.h
pci-direct.h
pci-functions.h
pci.h
pci_64.h
pci_x86.h x86/PCI: Add "pci=big_root_window" option for AMD 64-bit windows 2018-01-11 11:22:39 -06:00
percpu.h Merge commit 'upstream-x86-entry' into WIP.x86/mm 2017-12-17 12:58:53 +01:00
perf_event.h
perf_event_p4.h
pgalloc.h x86/mm/pti: Allocate a separate user PGD 2017-12-23 21:13:00 +01:00
pgtable-2level.h
pgtable-2level_types.h
pgtable-3level.h
pgtable-3level_types.h
pgtable.h Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-12-29 17:02:49 -08:00
pgtable_32.h
pgtable_32_types.h x86/cpu_entry_area: Move it out of the fixmap 2017-12-22 20:13:05 +01:00
pgtable_64.h x86/mm/pti: Add mapping helper functions 2017-12-23 21:12:59 +01:00
pgtable_64_types.h x86/kaslr: Fix the vaddr_end mess 2018-01-05 00:39:57 +01:00
pgtable_types.h
pkeys.h
platform_sst_audio.h
pm-trace.h
pmc_core.h
posix_types.h
preempt.h
probe_roms.h
processor-cyrix.h
processor-flags.h x86/pti: Fix !PCID and sanitize defines 2018-01-14 10:45:53 +01:00
processor.h Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-12-29 17:02:49 -08:00
prom.h
proto.h
pti.h x86/mm/pti: Add infrastructure for page table isolation 2017-12-23 21:12:59 +01:00
ptrace.h Merge commit 'upstream-x86-entry' into WIP.x86/mm 2017-12-17 12:58:53 +01:00
purgatory.h
pvclock-abi.h
pvclock.h
qrwlock.h
qspinlock.h
qspinlock_paravirt.h
realmode.h
reboot.h
reboot_fixups.h
refcount.h
required-features.h
rio.h
rmwcc.h Merge commit 'upstream-x86-entry' into WIP.x86/mm 2017-12-17 12:58:53 +01:00
rwsem.h
seccomp.h
sections.h
segment.h x86/xen: Support early interrupts in xen pv guests 2017-11-28 00:28:56 +01:00
serial.h
set_memory.h
setup.h
setup_arch.h
shmparam.h
sigcontext.h
sigframe.h
sighandling.h
signal.h
simd.h
smap.h
smp.h
sparsemem.h
special_insns.h
spinlock.h
spinlock_types.h
sta2x11.h
stackprotector.h
stacktrace.h x86/entry: Rename SYSENTER_stack to CPU_ENTRY_AREA_entry_stack 2017-12-22 20:13:02 +01:00
string.h
string_32.h
string_64.h
suspend.h
suspend_32.h x86/power: Make restore_processor_context() sane 2017-12-15 12:21:38 +01:00
suspend_64.h x86/power: Make restore_processor_context() sane 2017-12-15 12:21:38 +01:00
svm.h
swiotlb.h
switch_to.h Merge branch 'x86/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-12-31 13:13:56 -08:00
sync_bitops.h
sys_ia32.h
syscall.h
syscalls.h
sysfb.h
tce.h
text-patching.h
thread_info.h x86/entry/64: Make cpu_entry_area.tss read-only 2017-12-17 14:27:52 +01:00
time.h
timer.h
timex.h
tlb.h
tlbbatch.h
tlbflush.h Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-01-14 09:51:25 -08:00
topology.h
trace_clock.h
traps.h x86/entry/64: Use a per-CPU trampoline stack for IDT entries 2017-12-17 14:27:38 +01:00
tsc.h
uaccess.h
uaccess_32.h
uaccess_64.h
umip.h
unaligned.h
unistd.h
unwind.h x86/dumpstack: Fix partial register dumps 2018-01-03 16:14:46 +01:00
unwind_hints.h
uprobes.h
user.h
user32.h
user_32.h
user_64.h
vdso.h
vga.h
vgtod.h
virtext.h
vm86.h
vmx.h
vsyscall.h x86/pti: Map the vsyscall page if needed 2017-12-23 21:13:00 +01:00
vvar.h
word-at-a-time.h
x86_init.h
xor.h
xor_32.h
xor_64.h
xor_avx.h