linux-stable/arch/x86/include/asm
Linus Torvalds ea6f043fc9 x86: Make __get_user() generate an out-of-line call
Instead of inlining the whole stac/lfence/mov/clac sequence (which also
requires individual exception table entries and several asm instruction
alternatives entries), just generate "call __get_user_nocheck_X" for the
__get_user() cases.

We can use all the same infrastructure that we already do for the
regular "get_user()", and the end result is simpler source code, and
much simpler code generation.

It also means that when I introduce asm goto with input for
"unsafe_get_user()", there are no nasty interactions with the
__get_user() code.

Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-10-12 16:57:57 -07:00
..
crypto
e820
fpu Initial support for sharing virtual addresses between the CPU and 2020-10-12 10:40:34 -07:00
numachip
trace x86/entry: Convert reschedule interrupt to IDTENTRY_SYSVEC_SIMPLE 2020-06-11 15:15:16 +02:00
uv x86/platform/uv: Update Copyrights to conform to HPE standards 2020-10-07 09:10:07 +02:00
vdso vdso/treewide: Add vdso_data pointer argument to __arch_get_hw_counter() 2020-08-06 10:57:30 +02:00
xen xen: hypercall.h: fix duplicated word 2020-08-03 07:48:39 +02:00
acenv.h
acpi.h ACPI: processor: Use CPUIDLE_FLAG_TLB_FLUSHED 2020-09-16 19:36:25 +02:00
agp.h mm: introduce include/linux/pgtable.h 2020-06-09 09:39:13 -07:00
alternative-asm.h
alternative.h
amd_nb.h
apb_timer.h
apic.h x86/msi: Move compose message callback where it belongs 2020-09-16 16:52:28 +02:00
apicdef.h
apm.h
arch_hweight.h
archrandom.h
asm-offsets.h
asm-prototypes.h x86/mce: Allow for copy_mc_fragile symbol checksum to be generated 2020-10-08 10:39:21 +02:00
asm.h Orphan link sections were a long-standing source of obscure bugs, 2020-10-12 13:39:19 -07:00
atomic.h locking/atomic: Move ATOMIC_INIT into linux/types.h 2020-07-29 16:14:18 +02:00
atomic64_32.h locking/atomics: Flip fallbacks and instrumentation 2020-06-11 08:03:24 +02:00
atomic64_64.h locking/atomics: Flip fallbacks and instrumentation 2020-06-11 08:03:24 +02:00
audit.h
barrier.h
bios_ebda.h
bitops.h x86, kcsan: Remove __no_kcsan_or_inline usage 2020-06-15 14:10:08 +02:00
boot.h x86: Add support for ZSTD compressed kernel 2020-07-31 11:49:09 +02:00
bootparam_utils.h
bug.h compiler.h: Move instrumentation_begin()/end() to new <linux/instrumentation.h> header 2020-07-24 13:56:23 +02:00
bugs.h
cache.h
cacheflush.h
cacheinfo.h
ce4100.h
checksum.h unify generic instances of csum_partial_copy_nocheck() 2020-08-20 15:45:14 -04:00
checksum_32.h i386: propagate the calling conventions change down to csum_partial_copy_generic() 2020-08-20 15:45:18 -04:00
checksum_64.h amd64: switch csum_partial_copy_generic() to new calling conventions 2020-08-20 15:45:22 -04:00
clocksource.h
cmdline.h
cmpxchg.h
cmpxchg_32.h x86: cmpxchg_32.h: Delete duplicated word 2020-07-26 12:47:22 +02:00
cmpxchg_64.h
compat.h compat: add a compat_need_64bit_alignment_fixup() helper 2020-09-17 13:00:46 -04:00
copy_mc_test.h x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}() 2020-10-06 11:18:04 +02:00
cpu.h x86/cpu: Reinitialize IA32_FEAT_CTL MSR on BSP during wakeup 2020-06-15 14:18:37 +02:00
cpu_device_id.h
cpu_entry_area.h x86/entry: Remove DBn stacks 2020-06-11 15:15:23 +02:00
cpufeature.h
cpufeatures.h * Misc cleanups to the resctrl code in preparation for the ARM side, by 2020-10-12 10:53:32 -07:00
cpuidle_haltpoll.h
cpumask.h x86/entry, cpumask: Provide non-instrumented variant of cpu_is_offline() 2020-06-15 14:10:09 +02:00
crash.h
current.h
debugreg.h x86/debug: Remove aout_dump_debugregs() 2020-09-04 15:12:55 +02:00
delay.h
desc.h x86/idt: Consolidate idt functionality 2020-06-11 15:15:26 +02:00
desc_defs.h
device.h x86: Remove dev->archdata.iommu pointer 2020-06-30 11:59:48 +02:00
disabled-features.h x86/cpufeatures: Mark ENQCMD as disabled when configured out 2020-09-17 20:22:15 +02:00
div64.h sched/cputime: Improve cputime_adjust() 2020-06-15 14:10:00 +02:00
dma-mapping.h docs: fix references for DMA*.txt files 2020-06-26 10:01:32 -06:00
dma.h
dmi.h
doublefault.h
dwarf2.h
edac.h
efi.h efi/x86: Move 32-bit code into efi_32.c 2020-08-20 11:18:36 +02:00
elf.h kill elf_fpxregs_t 2020-07-27 14:29:23 -04:00
emergency-restart.h
emulate_prefix.h
entry-common.h x86/entry: Fix AC assertion 2020-09-04 15:09:29 +02:00
espfix.h
exec.h
extable.h x86/mce: Provide method to find out the type of an exception handler 2020-10-07 11:08:59 +02:00
fb.h
fixmap.h x86/paravirt: Use CONFIG_PARAVIRT_XXL instead of CONFIG_PARAVIRT 2020-08-15 13:52:11 +02:00
floppy.h
frame.h x86/unwind/fp: Fix FP unwinding in ret_from_fork 2020-09-18 09:59:40 +02:00
fsgsbase.h x86/fsgsbase: Replace static_cpu_has() with boot_cpu_has() 2020-08-24 18:18:32 +02:00
ftrace.h
futex.h
gart.h
GEN-for-each-reg.h
genapic.h
geode.h
hardirq.h x86/kvm/vmx: Move guest enter/exit into .noinstr.text 2020-07-09 07:08:40 -04:00
highmem.h
hpet.h
hugetlb.h
hw_breakpoint.h
hw_irq.h x86/msi: Consolidate MSI allocation 2020-09-16 16:52:35 +02:00
hyperv-tlfs.h x86/hyperv: Remove aliases with X64 in their name 2020-09-27 11:34:54 +02:00
hypervisor.h
i8259.h
ia32.h
ia32_unistd.h
idtentry.h Clean up the paravirt code after the removal of 32-bit Xen PV support. 2020-10-12 15:15:24 -07:00
imr.h
inat.h
inat_types.h
init.h
insn-eval.h
insn.h
inst.h Support for FSGSBASE. Almost 5 years after the first RFC to support it, 2020-08-04 21:16:22 -07:00
intel-family.h x86/cpu: Add Lakefield, Alder Lake and Rocket Lake models to the to Intel CPU family 2020-07-25 12:16:59 +02:00
intel-mid.h
intel_ds.h
intel_mid_vrtc.h
intel_pconfig.h
intel_pt.h
intel_punit_ipc.h
intel_scu_ipc.h
intel_scu_ipc_legacy.h
intel_telemetry.h
invpcid.h
io.h x86/asm: Carve out a generic movdir64b() helper for general usage 2020-10-07 17:49:25 +02:00
io_apic.h x86/ioapic: Remove unused "IOAPIC_AUTO" define 2020-07-25 12:00:56 +02:00
io_bitmap.h x86/ioperm: Fix io bitmap invalidation on Xen PV 2020-07-18 12:31:49 +02:00
iomap.h mm: don't include asm/pgtable.h if linux/mm.h is already included 2020-06-09 09:39:13 -07:00
iommu.h
iommu_table.h
iosf_mbi.h media: atomisp: move CCK endpoint address to generic header 2020-07-18 07:17:16 +02:00
irq.h x86/entry: Unbreak __irqentry_text_start/end magic 2020-06-11 15:15:29 +02:00
irq_remapping.h iommu/irq_remapping: Consolidate irq domain lookup 2020-09-16 16:52:30 +02:00
irq_stack.h x86/irq: Make run_on_irqstack_cond() typesafe 2020-09-22 22:13:34 +02:00
irq_vectors.h
irq_work.h x86/entry: Convert various system vectors 2020-06-11 15:15:14 +02:00
irqdomain.h x86/pci: Set default irq domain in pcibios_add_device() 2020-09-16 16:52:37 +02:00
irqflags.h x86/entry: __always_inline irqflags for noinstr 2020-06-11 15:15:27 +02:00
ist.h
jailhouse_para.h
jump_label.h
kasan.h
kaslr.h x86/mm: simplify init_trampoline() and surrounding logic 2020-06-09 09:39:13 -07:00
kbdleds.h
Kbuild
kdebug.h x86/dumpstack: Add log_lvl to __show_regs() 2020-07-22 23:56:53 +02:00
kexec-bzimage64.h
kexec.h
kgdb.h
kmap_types.h
kprobes.h x86/debug: Move kprobe_debug_handler() into exc_debug_kernel() 2020-09-04 15:12:52 +02:00
kvm_host.h KVM: Pass MMU notifier range flags to kvm_unmap_hva_range() 2020-08-21 18:03:47 -04:00
kvm_page_track.h
kvm_para.h KVM: x86: Use VMCALL and VMMCALL mnemonics in kvm_para.h 2020-07-08 16:21:49 -04:00
kvm_types.h KVM: Move x86's version of struct kvm_mmu_memory_cache to common code 2020-07-09 13:29:42 -04:00
kvm_vcpu_regs.h
kvmclock.h
linkage.h
livepatch.h
local.h
local64.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h
mce.h x86/mce: Add _ASM_EXTABLE_CPY for copy user access 2020-10-07 11:19:11 +02:00
mem_encrypt.h x86/mm: Fix -Wmissing-prototypes warnings for arch/x86/mm/init.c 2020-06-17 10:45:46 +02:00
memtype.h
microcode.h
microcode_amd.h
microcode_intel.h
misc.h
mmconfig.h
mmu.h cpuidle: Make CPUIDLE_FLAG_TLB_FLUSHED generic 2020-08-26 12:41:53 +02:00
mmu_context.h mm: remove unneeded includes of <asm/pgalloc.h> 2020-08-07 11:33:26 -07:00
mmx.h
mmzone.h
mmzone_32.h
mmzone_64.h
module.h
mpspec.h x86/init: Remove unused init ops 2020-09-16 16:52:28 +02:00
mpspec_def.h
mshyperv.h x86/hyperv: Make hv_setup_sched_clock inline 2020-08-11 10:41:15 +00:00
msi.h x86/msi: Use generic MSI domain ops 2020-09-16 16:52:35 +02:00
msidef.h
msr-index.h These are the performance events changes for v5.10: 2020-10-12 14:14:35 -07:00
msr-trace.h
msr.h
mtrr.h
mwait.h KVM: VMX: Stop context switching MSR_IA32_UMWAIT_CONTROL 2020-06-22 20:54:57 -04:00
nmi.h
nops.h
nospec-branch.h x86/speculation/mds: Mark mds_user_clear_cpu_buffers() __always_inline 2020-06-11 15:14:40 +02: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/paravirt: Avoid needless paravirt step clearing page table entries 2020-08-15 13:52:12 +02:00
paravirt_types.h x86/paravirt: Remove set_pte_at() pv-op 2020-08-15 13:52:12 +02:00
parport.h
pci-direct.h
pci-functions.h
pci.h x86/irq: Cleanup the arch_*_msi_irqs() leftovers 2020-09-16 16:52:38 +02:00
pci_x86.h x86/pci: Reducde #ifdeffery in PCI init code 2020-09-16 16:52:35 +02:00
percpu.h x86/percpu: Remove unused PER_CPU() macro 2020-07-23 11:46:43 +02:00
perf_event.h perf/x86/amd/ibs: Support 27-bit extended Op/cycle counter 2020-09-10 11:19:36 +02:00
perf_event_p4.h
pgalloc.h asm-generic: pgalloc: provide generic pgd_free() 2020-08-07 11:33:26 -07:00
pgtable-2level.h
pgtable-2level_types.h
pgtable-3level.h mmap locking API: convert mmap_sem comments 2020-06-09 09:39:14 -07:00
pgtable-3level_types.h x86/paravirt: Remove 32-bit support from CONFIG_PARAVIRT_XXL 2020-08-15 13:52:11 +02:00
pgtable-invert.h
pgtable.h x86/paravirt: Remove set_pte_at() pv-op 2020-08-15 13:52:12 +02:00
pgtable_32.h Merge branch 'uaccess.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-06-10 16:02:54 -07:00
pgtable_32_areas.h
pgtable_32_types.h
pgtable_64.h The biggest change is to not sync the vmalloc and ioremap ranges for x86-64 anymore. 2020-08-03 17:25:42 -07:00
pgtable_64_types.h x86/mm/64: Do not sync vmalloc/ioremap mappings 2020-08-15 13:56:16 +02:00
pgtable_areas.h
pgtable_types.h x86/hyperv: allocate the hypercall page with only read and execute bits 2020-06-26 00:27:38 -07:00
pkeys.h
platform_sst_audio.h
pm-trace.h
posix_types.h
preempt.h
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h x86/debug: Change thread.debugreg6 to thread.virtual_dr6 2020-09-04 15:12:58 +02:00
prom.h
proto.h x86/xen: remove 32-bit Xen PV guest support 2020-08-11 08:26:48 +02:00
pti.h
ptrace.h tracing/kprobes, x86/ptrace: Fix regs argument order for i386 2020-09-04 14:40:42 +02:00
purgatory.h
pvclock-abi.h
pvclock.h
qrwlock.h
qspinlock.h x86/kvm: Add "nopvspin" parameter to disable PV spinlocks 2020-07-08 16:21:57 -04:00
qspinlock_paravirt.h
realmode.h
reboot.h
reboot_fixups.h
required-features.h x86/paravirt: Use CONFIG_PARAVIRT_XXL instead of CONFIG_PARAVIRT 2020-08-15 13:52:11 +02:00
resctrl.h
rmwcc.h
seccomp.h
sections.h
segment.h x86/paravirt: Remove 32-bit support from CONFIG_PARAVIRT_XXL 2020-08-15 13:52:11 +02:00
serial.h
set_memory.h x86/{mce,mm}: Unmap the entire page if the whole page is affected and poisoned 2020-06-11 15:19:17 +02:00
setup.h x86/mm: simplify init_trampoline() and surrounding logic 2020-06-09 09:39:13 -07:00
setup_arch.h
shmparam.h
sigcontext.h
sigframe.h
sighandling.h
signal.h x86/entry: Use generic syscall exit functionality 2020-07-24 15:04:59 +02:00
simd.h
smap.h
smp.h x86/headers: Remove APIC headers from <asm/smp.h> 2020-08-06 16:13:09 +02:00
sparsemem.h x86/mm: Drop unused MAX_PHYSADDR_BITS 2020-07-24 09:53:06 +02:00
spec-ctrl.h
special_insns.h Initial support for sharing virtual addresses between the CPU and 2020-10-12 10:40:34 -07:00
spinlock.h
spinlock_types.h
sta2x11.h
stackprotector.h x86/stackprotector: Pre-initialize canary for secondary CPUs 2020-06-18 13:09:17 +02:00
stacktrace.h
static_call.h static_call: Add static_call_cond() 2020-09-01 09:58:05 +02:00
string.h
string_32.h
string_64.h x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}() 2020-10-06 11:18:04 +02:00
suspend.h
suspend_32.h
suspend_64.h
svm.h
swiotlb.h
switch_to.h
sync_bitops.h
sync_core.h x86/cpu: Fix typos and improve the comments in sync_core() 2020-08-19 09:56:36 +02:00
syscall.h
syscall_wrapper.h
syscalls.h
sysfb.h
text-patching.h x86/alternatives: Teach text_poke_bp() to emulate RET 2020-09-01 09:58:05 +02:00
thread_info.h x86/entry: Use generic syscall entry function 2020-07-24 15:04:59 +02:00
time.h
timer.h
timex.h
tlb.h
tlbbatch.h
tlbflush.h
topology.h x86, sched: check for counters overflow in frequency invariant accounting 2020-06-15 14:10:02 +02:00
trace_clock.h
trapnr.h x86/traps: Split trap numbers out in a separate header 2020-06-11 15:14:42 +02:00
traps.h x86/mce: Decode a kernel instruction to determine if it is copying from user 2020-10-07 11:32:40 +02:00
tsc.h A set of locking fixes and updates: 2020-08-10 19:07:44 -07:00
uaccess.h x86: Make __get_user() generate an out-of-line call 2020-10-12 16:57:57 -07:00
uaccess_32.h
uaccess_64.h x86, powerpc: Rename memcpy_mcsafe() to copy_mc_to_{user, kernel}() 2020-10-06 11:18:04 +02:00
umip.h
unaligned.h
unistd.h
unwind.h
unwind_hints.h
uprobes.h
user.h
user32.h
user_32.h
user_64.h
vdso.h
vermagic.h
vga.h
vgtod.h
virtext.h
vm86.h
vmalloc.h
vmware.h
vmx.h
vmxfeatures.h
vsyscall.h
vvar.h
word-at-a-time.h
x86_init.h x86/irq: Make most MSI ops XEN private 2020-09-16 16:52:38 +02:00
xor.h
xor_32.h
xor_64.h
xor_avx.h