linux/arch/x86/include/asm
Linus Torvalds 4f8a3cc118 A set of three patches to fix the fallout of the newly added split lock
detection feature.
 
 It addressed the case where a KVM guest triggers a split lock #AC and KVM
 reinjects it into the guest which is not prepared to handle it.
 
 Adds proper sanity checks which prevent the unconditional injection into
 the guest and handles the #AC on the host side in the same way as user
 space detections are handled. Depending on the detection mode it either
 warns and disables detection for the task or kills the task if the mode is
 set to fatal.
 -----BEGIN PGP SIGNATURE-----
 
 iQJHBAABCgAxFiEEQp8+kY+LLUocC4bMphj1TA10mKEFAl6TFtMTHHRnbHhAbGlu
 dXRyb25peC5kZQAKCRCmGPVMDXSYoSHuD/4gUKV4BefhiUulmk++jAyq1Hq91IOg
 wIZEALyP53AcxXDoASAzkbNfyDuBufszzM6lSgd0lFMN4uaDvW/7jTR9fxyG7xMT
 uTS86WZRKpMjb+NWnU5OuO7jmYSKnV/yjXqyg+z9G7nO/JdQ7b4GekdPQobGOZ0f
 NGGttSjCHvMUt5JF6tUggpl8IgomEP0HNes80IHIoJbE1KOm9qiP0NYZtlrlwYWT
 J0Xuz4b/I1IeT2Dr4X7B4LYmzYqyXpG/8khTapFyBdLqdNLBhoEUPotnEjrL3u/S
 I4h+U5N1hCu3AjC0iatjedD2etB8GWrOWhBYPmdh9LTdhHIVUIDKWDoUYl3YeESK
 Kvu5b3tyCbT86YKu2WxDtwi67yN6MM390M2JU3TLzzbbmjxMTG2dzWQaWzKeDFcx
 NwoxQU08c1/dVheODe2lCsI+RaMY3uWMpHoRrJkm105CaOGrBMpTFfHyMJsY8zgZ
 vgpUZeXylx0IrgteWyD6UrkA6LqtBukc/zOb9YL8vQmSh2I3URhUQ8O+TQG9VtbR
 e/KekJ2Ij7gXSOSu65bcpNY3q7BtVi+7ev5KFYhVMT3QuMMdc7l+TkMX5lDhAG+a
 lYdn9mxuNahyTxylGt7Sy0U1bRyn1n7fIG4azwuCiNhXtimV0urTG6PtfQTf+j4L
 bXJfa4C4BykF5A==
 =8FbL
 -----END PGP SIGNATURE-----

Merge tag 'x86-urgent-2020-04-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull x86 fixes from Thomas Gleixner:
 "A set of three patches to fix the fallout of the newly added split
  lock detection feature.

  It addressed the case where a KVM guest triggers a split lock #AC and
  KVM reinjects it into the guest which is not prepared to handle it.

  Add proper sanity checks which prevent the unconditional injection
  into the guest and handles the #AC on the host side in the same way as
  user space detections are handled. Depending on the detection mode it
  either warns and disables detection for the task or kills the task if
  the mode is set to fatal"

* tag 'x86-urgent-2020-04-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  KVM: VMX: Extend VMXs #AC interceptor to handle split lock #AC in guest
  KVM: x86: Emulate split-lock access as a write in emulator
  x86/split_lock: Provide handle_guest_split_lock()
2020-04-12 10:17:16 -07:00
..
crypto crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
e820 x86/efi: EFI soft reservation to E820 enumeration 2019-11-07 15:44:14 +01:00
fpu x86/fpu: Don't cache access to fpu_fpregs_owner_ctx 2019-11-28 10:16:46 +01:00
numachip
trace MPX requires recompiling applications, which requires compiler support. 2020-01-30 16:11:50 -08:00
uv x86/platform/uv: Add a missing prototype for uv_bau_message_interrupt() 2020-03-27 10:54:52 +01:00
vdso x86/vdso: Enable x86 to use common headers 2020-03-21 15:24:02 +01:00
xen Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-11-26 15:04:47 -08:00
acenv.h
acpi.h x86/ACPI/sleep: Move acpi_get_wakeup_address() into sleep.c, remove <asm/realmode.h> from <asm/acpi.h> 2019-12-10 10:15:48 +01:00
acrn.h
agp.h
alternative-asm.h
alternative.h x86: alternative.h: use asm_inline for all alternative variants 2019-09-15 20:14:15 +02:00
amd_nb.h x86/amd_nb, char/amd64-agp: Use amd_nb_num() accessor 2020-03-17 10:25:58 +01:00
apb_timer.h
apic.h x86/apic/msi: Plug non-maskable MSI affinity race 2020-02-01 09:31:47 +01:00
apicdef.h
apm.h
arch_hweight.h
archrandom.h x86: Mark archrandom.h functions __must_check 2020-01-25 12:18:50 -05:00
asm-offsets.h
asm-prototypes.h
asm.h kill uaccess_try() 2020-03-26 15:02:14 -04:00
atomic.h
atomic64_32.h
atomic64_64.h
barrier.h x86: Remove X86_FEATURE_MFENCE_RDTSC 2019-07-22 12:00:51 +02:00
bios_ebda.h
bitops.h x86: Fix bitops.h warning with a moved cast 2020-03-18 12:30:19 +01:00
boot.h
bootparam_utils.h x86/boot: Preserve boot_params.secure_boot from sanitizing 2019-09-02 09:17:45 +02:00
bug.h x86: bug.h: use asm_inline in _BUG_FLAGS definitions 2019-09-15 20:14:15 +02:00
bugs.h x86/mpx: remove MPX from arch/x86 2020-01-23 10:41:20 -08:00
cache.h
cacheflush.h
cacheinfo.h
ce4100.h
checksum.h
checksum_32.h
checksum_64.h
clocksource.h x86: Introduce asm/vdso/clocksource.h 2020-03-21 15:23:54 +01:00
cmdline.h
cmpxchg.h
cmpxchg_32.h
cmpxchg_64.h
compat.h compat: provide compat_ptr() on all architectures 2020-01-03 09:32:51 +01:00
cpu.h x86/split_lock: Provide handle_guest_split_lock() 2020-04-11 16:39:30 +02:00
cpu_device_id.h x86/cpu: Cleanup the now unused CPU match macros 2020-03-24 21:37:23 +01:00
cpu_entry_area.h mm, x86/mm: Untangle address space layout definitions from basic pgtable type definitions 2019-12-10 10:12:55 +01:00
cpufeature.h x86/cpufeature: Explain the macro duplication 2019-08-28 08:38:39 +02:00
cpufeatures.h Support for "split lock" detection: 2020-03-30 19:35:52 -07:00
cpuidle_haltpoll.h cpuidle-haltpoll: vcpu hotplug support 2019-09-03 09:36:36 +02:00
cpumask.h
crash.h Merge branch 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-11-26 09:48:19 -08:00
current.h
debugreg.h
delay.h
desc.h
desc_defs.h
device.h x86/PCI: Remove X86_DEV_DMA_OPS 2020-01-24 15:00:35 -06:00
disabled-features.h MPX requires recompiling applications, which requires compiler support. 2020-01-30 16:11:50 -08:00
div64.h x86/math64: Provide a sane mul_u64_u32_div() implementation for x86_64 2019-09-03 08:56:14 +02:00
dma-mapping.h
dma.h
dmi.h
doublefault.h x86/doublefault/32: Move #DF stack and TSS to cpu_entry_area 2019-11-26 21:53:34 +01:00
dwarf2.h x86: remove always-defined CONFIG_AS_CFI_SECTIONS 2020-04-09 00:01:59 +09:00
edac.h
efi.h efi/libstub/x86: Use Exit() boot service to exit the stub on errors 2020-02-23 21:59:42 +01:00
elf.h
emergency-restart.h
emulate_prefix.h x86: xen: kvm: Gather the definition of emulate prefixes 2019-10-17 21:31:57 +02:00
entry_arch.h
espfix.h
exec.h
extable.h
fb.h
fixmap.h x86/mm: Use the correct function type for native_set_fixmap() 2019-10-11 12:52:32 +02:00
floppy.h
frame.h
fsgsbase.h
ftrace.h Linux 5.5-rc1 2019-12-10 10:11:00 +01:00
futex.h x86: get rid of user_atomic_cmpxchg_inatomic() 2020-03-27 23:58:55 -04:00
gart.h
genapic.h
geode.h
hardirq.h
highmem.h
hpet.h
hugetlb.h
hw_breakpoint.h
hw_irq.h x86/irq: Improve definition of VECTOR_SHUTDOWN et al 2019-08-19 23:19:06 +02:00
hyperv-tlfs.h PCI: hv: Introduce hv_msi_entry 2020-03-09 14:51:31 +00:00
hypervisor.h x86/paravirt: Remove const mark from x86_hyper_xen_hvm variable 2019-07-17 08:09:59 +02:00
i8259.h
ia32.h
ia32_unistd.h
imr.h
inat.h
inat_types.h
init.h
insn-eval.h
insn.h x86: xen: insn: Decode Xen and KVM emulate-prefix signature 2019-10-17 21:31:57 +02:00
inst.h
intel-family.h x86/cpu: Cleanup the now unused CPU match macros 2020-03-24 21:37:23 +01:00
intel-mid.h
intel_ds.h
intel_mid_vrtc.h
intel_pconfig.h
intel_pmc_ipc.h platform/x86: intel_pmc_ipc: Drop intel_pmc_gcr_read() and intel_pmc_gcr_write() 2020-01-22 18:52:26 +02:00
intel_pt.h perf/x86/intel: Support PEBS output to PT 2019-08-28 11:29:39 +02:00
intel_punit_ipc.h
intel_scu_ipc.h platform/x86: intel_scu_ipc: Drop intel_scu_ipc_raw_command() 2020-01-22 18:52:17 +02:00
intel_telemetry.h platform/x86: intel_telemetry_pltdrv: use devm_platform_ioremap_resource() 2020-01-10 11:50:32 +02:00
invpcid.h
io.h x86/asm: add iosubmit_cmds512() based on MOVDIR64B CPU instruction 2020-01-24 11:18:45 +05:30
io_apic.h
io_bitmap.h x86/ioperm: Add new paravirt function update_io_bitmap() 2020-02-29 12:43:09 +01:00
iomap.h
iommu.h iommu/vt-d: Check VT-d RMRR region in BIOS is reported as reserved 2019-11-11 16:06:07 +01:00
iommu_table.h
iosf_mbi.h
irq.h x86/irq: Remove useless return value from do_IRQ() 2020-02-27 14:48:40 +01:00
irq_regs.h
irq_remapping.h
irq_vectors.h
irq_work.h
irqdomain.h
irqflags.h
ist.h
jailhouse_para.h
jump_label.h
kasan.h
kaslr.h
kbdleds.h
Kbuild asm-generic: make more kernel-space headers mandatory 2020-04-02 09:35:25 -07:00
kdebug.h x86/dumpstack: Introduce die_addr() for die() with #GP fault address 2019-12-31 13:11:35 +01:00
kexec-bzimage64.h
kexec.h x86/kdump: Remove the backup region handling 2019-11-14 18:24:43 +01:00
kgdb.h
kmap_types.h
kprobes.h x86/optprobe: Fix OPTPROBE vs UACCESS 2020-03-20 13:06:22 +01:00
kvm_host.h KVM: x86: Drop __exit from kvm_x86_ops' hardware_unsetup() 2020-03-31 10:48:09 -04:00
kvm_page_track.h KVM: Simplify kvm_free_memslot() and all its descendents 2020-03-16 17:57:22 +01:00
kvm_para.h x86/mm, tracing: Fix CR2 corruption 2019-07-17 23:17:38 +02:00
kvm_vcpu_regs.h
kvmclock.h
linkage.h x86/asm: Remove the last GLOBAL user and remove the macro 2019-10-18 11:29:50 +02:00
livepatch.h
local.h
local64.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mce.h x86 entry code updates: 2020-03-30 19:14:28 -07:00
mcsafe_test.h
mem_encrypt.h x86, s390/mm: Move sme_active() and sme_me_mask to x86-specific header 2019-08-09 22:52:08 +10:00
memtype.h x86/mm/pat: Clean up <asm/memtype.h> externs 2019-12-10 10:12:55 +01:00
microcode.h
microcode_amd.h x86/microcode/AMD: Make stub function static inline 2019-12-12 22:29:00 +01:00
microcode_intel.h
misc.h
mmconfig.h
mmu.h x86/mpx: remove MPX from arch/x86 2020-01-23 10:41:20 -08:00
mmu_context.h mm/vma: make vma_is_foreign() available for general use 2020-04-02 09:35:29 -07:00
mmx.h
mmzone.h
mmzone_32.h
mmzone_64.h
module.h x86/math-emu: Limit MATH_EMULATION to 486SX compatibles 2019-10-03 10:51:17 +02:00
mpspec.h
mpspec_def.h
mshyperv.h pci-v5.7-changes 2020-04-03 14:25:02 -07:00
msi.h
msidef.h
msr-index.h Support for "split lock" detection: 2020-03-30 19:35:52 -07:00
msr-trace.h
msr.h x86: Remove X86_FEATURE_MFENCE_RDTSC 2019-07-22 12:00:51 +02:00
mtrr.h x86/mm/pat: Rename <asm/pat.h> => <asm/memtype.h> 2019-12-10 10:12:55 +01:00
mwait.h x86/cpu: Move prototype for get_umwait_control_msr() to a global location 2020-02-17 19:32:45 +01:00
nmi.h x86/nmi: Remove irq_work from the long duration NMI handler 2020-01-11 15:55:39 +01:00
nops.h
nospec-branch.h x86/nospec: Remove unused RSB_FILL_LOOPS 2020-01-02 10:54:53 +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 x86/mm: thread pgprot_t through init_memory_mapping() 2020-04-10 15:36:21 -07:00
paravirt.h x86/ioperm: Add new paravirt function update_io_bitmap() 2020-02-29 12:43:09 +01:00
paravirt_types.h x86/ioperm: Add new paravirt function update_io_bitmap() 2020-02-29 12:43:09 +01:00
parport.h
pci-direct.h
pci-functions.h
pci.h x86/PCI: Define to_pci_sysdata() even when !CONFIG_PCI 2020-02-04 08:44:46 -06:00
pci_x86.h
percpu.h
perf_event.h perf/amd/uncore: Add support for Family 19h L3 PMU 2020-03-17 13:01:03 +01:00
perf_event_p4.h
pgalloc.h asm-generic, x86: introduce generic pte_{alloc,free}_one[_kernel] 2019-07-12 11:05:45 -07:00
pgtable-2level.h
pgtable-2level_types.h
pgtable-3level.h x86/mm: Clean up the pmd_read_atomic() comments 2019-09-25 10:13:27 +02:00
pgtable-3level_types.h
pgtable-invert.h
pgtable.h x86/mm: thread pgprot_t through init_memory_mapping() 2020-04-10 15:36:21 -07:00
pgtable_32.h mm: consolidate pgtable_cache_init() and pgd_cache_init() 2019-09-24 15:54:09 -07:00
pgtable_32_areas.h mm, x86/mm: Untangle address space layout definitions from basic pgtable type definitions 2019-12-10 10:12:55 +01:00
pgtable_32_types.h mm, x86/mm: Untangle address space layout definitions from basic pgtable type definitions 2019-12-10 10:12:55 +01:00
pgtable_64.h userfaultfd: wp: add WP pagetable tracking to x86 2020-04-07 10:43:39 -07:00
pgtable_64_types.h
pgtable_areas.h mm, x86/mm: Untangle address space layout definitions from basic pgtable type definitions 2019-12-10 10:12:55 +01:00
pgtable_types.h userfaultfd: wp: add WP pagetable tracking to x86 2020-04-07 10:43:39 -07:00
pkeys.h x86/pkeys: Add check for pkey "overflow" 2020-02-24 20:25:21 +01:00
platform_sst_audio.h
pm-trace.h
posix_types.h
preempt.h x86/entry: Rename ___preempt_schedule 2020-03-21 16:03:53 +01:00
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-03-31 11:04:05 -07:00
prom.h
proto.h
pti.h x86: Use the correct SPDX License Identifier in headers 2019-10-01 20:31:35 +02:00
ptrace.h Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-01-28 12:28:06 -08:00
purgatory.h x86/kdump: Remove the backup region handling 2019-11-14 18:24:43 +01:00
pvclock-abi.h
pvclock.h
qrwlock.h
qspinlock.h locking/qspinlock,x86: Clarify virt_spin_lock_key 2019-08-06 12:49:16 +02:00
qspinlock_paravirt.h
realmode.h x86/boot: Fix a comment's incorrect file reference 2019-12-16 14:09:33 +01:00
reboot.h
reboot_fixups.h
required-features.h
resctrl_sched.h
rmwcc.h
seccomp.h
sections.h x86/setup: Fix static memory detection 2020-03-19 11:58:13 +01:00
segment.h x86/stackframe/32: Repair 32-bit Xen PV 2019-11-19 21:58:28 +01:00
serial.h
set_memory.h x86/mm: introduce __set_memory_prot() 2020-04-10 15:36:21 -07:00
setup.h
setup_arch.h
shmparam.h
sigcontext.h
sigframe.h x86: switch sigframe sigset handling to explict __get_user()/__put_user() 2020-03-18 15:29:54 -04:00
sighandling.h Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-03-31 11:04:05 -07:00
signal.h
simd.h
smap.h
smp.h x86/smp: Move smp_function_call implementations into IPI code 2019-07-25 16:12:01 +02:00
sparsemem.h
spec-ctrl.h
special_insns.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
spinlock.h
spinlock_types.h
sta2x11.h
stackprotector.h
stacktrace.h
string.h
string_32.h
string_64.h
suspend.h
suspend_32.h
suspend_64.h x86/paravirt: Drop {read,write}_cr8() hooks 2019-07-22 10:12:33 +02:00
svm.h kvm: svm: Intercept RDPRU 2019-09-24 16:15:36 +02:00
swiotlb.h
switch_to.h x86/process: Unify copy_thread_tls() 2019-11-16 11:23:59 +01:00
sync_bitops.h
sync_core.h
syscall.h Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-03-31 11:04:05 -07:00
syscall_wrapper.h x86/entry: Fix build error x86 with !CONFIG_POSIX_TIMERS 2020-03-25 10:06:20 +01:00
syscalls.h x86: Remove unneeded includes 2020-03-21 16:03:25 +01:00
sysfb.h
text-patching.h x86/kprobes: Fix ordering while text-patching 2019-11-27 07:44:24 +01:00
thread_info.h Support for "split lock" detection: 2020-03-30 19:35:52 -07:00
time.h
timer.h
timex.h
tlb.h asm-generic/tlb: rename HAVE_RCU_TABLE_FREE 2020-02-04 03:05:26 +00:00
tlbbatch.h
tlbflush.h x86/mm: Avoid redundant interrupt disable in load_mm_cr4() 2019-07-24 14:43:37 +02:00
topology.h x86/intel_pstate: Handle runtime turbo disablement/enablement in frequency invariance 2020-01-28 21:37:06 +01:00
trace_clock.h
traps.h x86/traps: Remove redundant declaration of do_double_fault() 2020-02-27 14:48:40 +01:00
tsc.h
uaccess.h x86: start using named parameters for low-level uaccess asms 2020-04-01 13:23:14 -07:00
uaccess_32.h x86: get rid of small constant size cases in raw_copy_{to,from}_user() 2020-03-18 15:53:25 -04:00
uaccess_64.h x86: get rid of small constant size cases in raw_copy_{to,from}_user() 2020-03-18 15:53:25 -04:00
umip.h x86/Kconfig: Rename UMIP config parameter 2019-11-07 11:07:29 +01:00
unaligned.h
unistd.h x86/entry: Move max syscall number calculation to syscallhdr.sh 2020-03-21 16:03:21 +01:00
unwind.h
unwind_hints.h ftrace/x86: Tell objtool to ignore nondeterministic ftrace stack layout 2019-11-13 09:36:50 -05:00
uprobes.h
user.h
user32.h
user_32.h
user_64.h
vdso.h x86/vdso: Add time napespace page 2020-01-14 12:20:58 +01:00
vga.h
vgtod.h um: Fix header inclusion 2020-03-23 18:45:14 +01:00
virtext.h
vm86.h
vmalloc.h mm, x86/mm: Untangle address space layout definitions from basic pgtable type definitions 2019-12-10 10:12:55 +01:00
vmware.h x86/cpu/vmware: Fix platform detection VMWARE_PORT macro 2019-10-22 00:51:44 +02:00
vmx.h KVM: nVMX: Allow L1 to use 5-level page walks for nested EPT 2020-03-16 17:57:44 +01:00
vmxfeatures.h KVM: VMX: Add VMX_FEATURE_USR_WAIT_PAUSE 2020-02-21 18:05:19 +01:00
vsyscall.h
vvar.h x86/vdso: Add time napespace page 2020-01-14 12:20:58 +01:00
word-at-a-time.h
x86_init.h x86/timer: Don't skip PIT setup when APIC is disabled or in legacy mode 2020-01-29 12:50:12 +01:00
xor.h
xor_32.h
xor_64.h
xor_avx.h x86: remove always-defined CONFIG_AS_AVX 2020-04-09 00:01:59 +09:00