linux_dsm_epyc7002/arch/x86/include/asm
Linus Torvalds 11f1a4b975 x86: reorganize SMAP handling in user space accesses
This reorganizes how we do the stac/clac instructions in the user access
code.  Instead of adding the instructions directly to the same inline
asm that does the actual user level access and exception handling, add
them at a higher level.

This is mainly preparation for the next step, where we will expose an
interface to allow users to mark several accesses together as being user
space accesses, but it does already clean up some code:

 - the inlined trivial cases of copy_in_user() now do stac/clac just
   once over the accesses: they used to do one pair around the user
   space read, and another pair around the write-back.

 - the {get,put}_user_ex() macros that are used with the catch/try
   handling don't do any stac/clac at all, because that happens in the
   try/catch surrounding them.

Other than those two cleanups that happened naturally from the
re-organization, this should not make any difference. Yet.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2015-12-17 09:45:09 -08:00
..
crypto x86/fpu: Rename i387.h to fpu/api.h 2015-05-19 15:47:30 +02:00
fpu Merge branch 'x86-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-11-03 21:05:40 -08:00
numachip x86/numachip: Introduce Numachip2 timer mechanisms 2015-09-22 22:25:33 +02:00
trace x86/fpu/mpx: Rework MPX 'xstate' types 2015-09-14 12:22:00 +02:00
uv x86/platform/uv: Insert per_cpu accessor function on uv_hub_nmi 2015-09-13 09:27:53 +02:00
xen xen/arm: Enable cpu_hotplug.c 2015-10-23 14:20:47 +01:00
a.out-core.h
acenv.h
acpi.h acpi, x86: Implement arch_apei_get_mem_attributes() 2015-08-08 10:37:39 +02:00
agp.h
alternative-asm.h x86/alternatives: Document macros 2015-05-06 11:25:31 +02:00
alternative.h x86/alternatives, x86/fpu: Add 'alternatives_patched' debug flag and use it in xsave_state() 2015-05-19 15:48:03 +02:00
amd_nb.h x86/amd_nb, EDAC: Rename amd_get_node_id() 2015-10-21 11:10:55 +02:00
apb_timer.h
apic_flat_64.h
apic.h x86/x2apic: Make stub functions available even if !CONFIG_X86_LOCAL_APIC 2015-09-30 21:17:36 +02:00
apicdef.h
apm.h
arch_hweight.h x86/hweight: Force inlining of __arch_hweight{32,64}() 2015-08-05 09:38:09 +02:00
archrandom.h
asm-offsets.h
asm.h x86/asm/uaccess: Unify the ALIGN_DESTINATION macro 2015-05-14 07:25:34 +02:00
atomic64_32.h x86: Provide atomic_{or,xor,and} 2015-07-27 14:06:23 +02:00
atomic64_64.h atomic, arch: Audit atomic_{read,set}() 2015-09-23 09:54:28 +02:00
atomic.h atomic, arch: Audit atomic_{read,set}() 2015-09-23 09:54:28 +02:00
barrier.h Merge branch 'x86/asm' into locking/core 2015-08-03 11:04:00 +02:00
bios_ebda.h
bitops.h
boot.h
bootparam_utils.h
bug.h
bugs.h
cache.h
cacheflush.h nd_blk: change aperture mapping from WC to WB 2015-08-27 19:38:28 -04:00
calgary.h
ce4100.h
checksum_32.h
checksum_64.h
checksum.h
clocksource.h
cmdline.h
cmpxchg_32.h
cmpxchg_64.h
cmpxchg.h arch: Remove __ARCH_HAVE_CMPXCHG 2015-05-13 10:55:42 +02:00
compat.h x86/asm/entry/64: Save user RSP in pt_regs->sp on SYSCALL64 fastpath 2015-03-10 13:56:10 +01:00
cpu_device_id.h
cpu.h x86: Use common outgoing-CPU-notification code 2015-03-11 13:22:35 -07:00
cpufeature.h x86/cpu: Add CLZERO detection 2015-11-01 11:26:23 +01:00
cpumask.h
crash.h
current.h
debugreg.h
delay.h x86/asm/delay: Introduce an MWAITX-based delay with a configurable timer 2015-08-22 14:52:16 +02:00
desc_defs.h
desc.h x86/ldt: Make modify_ldt synchronous 2015-07-31 10:23:23 +02:00
device.h
disabled-features.h
div64.h
dma-mapping.h dma-mapping: consolidate dma_set_mask 2015-09-10 13:29:01 -07:00
dma.h
dmi.h
dwarf2.h x86/asm: Remove the xyz_cfi macros from dwarf2.h 2015-10-14 16:56:28 +02:00
e820.h mm: move memtest under mm 2015-04-14 16:49:06 -07:00
edac.h EDAC: Cleanup atomic_scrub mess 2015-05-28 15:31:53 +02:00
efi.h * Make the EFI System Resource Table (ESRT) driver explicitly 2015-10-14 16:51:34 +02:00
elf.h x86/elf/64: Clear more registers in elf_common_init() 2015-10-09 09:41:06 +02:00
emergency-restart.h
entry_arch.h Merge branch 'x86/ras' into x86/core, to fix conflicts 2015-06-07 15:35:27 +02:00
espfix.h x86/espfix: Add 'cpu' parameter to init_espfix_ap() 2015-07-06 15:00:33 +02:00
exec.h
fb.h
fixmap.h
floppy.h
frame.h x86/debug: Remove perpetually broken, unmaintainable dwarf annotations 2015-06-02 07:57:48 +02:00
ftrace.h ftrace: Format MCOUNT_ADDR address as type unsigned long 2015-07-20 22:30:53 -04:00
futex.h
gart.h
genapic.h
geode.h
gpio.h
hardirq.h Merge branch 'x86/ras' into x86/core, to fix conflicts 2015-06-07 15:35:27 +02:00
highmem.h kmap_atomic_to_page() has no users, remove it 2015-11-09 15:11:24 -08:00
hpet.h timers/x86/hpet: Type adjustments 2015-10-21 11:17:32 +02:00
hugetlb.h mm/hugetlb: remove arch_prepare/release_hugepage from arch headers 2015-06-25 17:00:35 -07:00
hw_breakpoint.h
hw_irq.h x86/irq: Store irq descriptor in vector array 2015-08-06 00:14:59 +02:00
hypertransport.h
hypervisor.h hypervisor/x86/xen: Unset X86_BUG_SYSRET_SS_ATTRS on Xen PV guests 2015-05-05 18:27:43 +01:00
i8259.h x86/irq: Probe for PIC presence before allocating descs for legacy IRQs 2015-11-07 10:37:37 +01:00
ia32_unistd.h
ia32.h x86/headers: Remove <asm/sigcontext.h> references on the kernel side 2015-09-08 10:06:05 +02:00
idle.h
imr.h
inat_types.h
inat.h
init.h
insn.h
inst.h
intel_mid_vrtc.h
intel_pmc_ipc.h intel_pmc_ipc: Update kerneldoc formatting 2015-07-09 11:23:15 -07:00
intel_scu_ipc.h
intel-mid.h x86, intel-mid: remove Intel MID specific serial support 2015-03-07 03:25:18 +01:00
io_apic.h x86: Cleanup irq_domain ops 2015-04-24 15:36:55 +02:00
io.h libnvdimm for 4.3: 2015-09-08 14:35:59 -07:00
iomap.h
iommu_table.h x86/iommu: Fix header comments regarding standard and _FINISH macros 2015-04-09 10:56:31 +02:00
iommu.h
iosf_mbi.h x86/platform/iosf_mbi: Source cleanup 2015-07-16 17:48:48 +02:00
ipi.h
irq_regs.h
irq_remapping.h irq_remapping: move structs outside #ifdef 2015-10-01 15:06:42 +02:00
irq_vectors.h x86/vm86: Move the vm86 IRQ definitions to vm86.h 2015-07-31 13:31:10 +02:00
irq_work.h
irq.h x86/irq: Store irq descriptor in vector array 2015-08-06 00:14:59 +02:00
irqdomain.h x86/irq: Move irqdomain specific code into asm/irqdomain.h 2015-04-24 15:36:55 +02:00
irqflags.h x86/asm/entry: Drop now unused ENABLE_INTERRUPTS_SYSEXIT32 2015-04-03 10:34:19 +02:00
ist.h
jump_label.h jump_label/x86: Work around asm build bug on older/backported GCCs 2015-08-13 08:44:43 +02:00
kasan.h x86/kasan: Define KASAN_SHADOW_OFFSET per architecture 2015-08-22 14:54:55 +02:00
kbdleds.h
Kbuild mm: clean up per architecture MM hook header files 2015-07-17 16:39:53 -07:00
kdebug.h x86/kexec: Remove obsolete 'in_crash_kexec' flag 2015-10-12 09:43:11 +02:00
kexec-bzimage64.h
kexec.h
kgdb.h
kmap_types.h
kmemcheck.h
kprobes.h
kvm_emulate.h KVM: x86: add read_phys to x86_emulate_ops 2015-11-04 16:24:31 +01:00
kvm_guest.h
kvm_host.h KVM: x86: rename update_db_bp_intercept to update_bp_intercept 2015-11-10 12:06:25 +01:00
kvm_para.h x86: Use bool function return values of true/false not 1/0 2015-03-31 18:05:09 +02:00
lguest_hcall.h
lguest.h lguest: suppress interrupts for single insn, not range. 2015-03-24 11:52:08 +10:30
linkage.h
livepatch.h livepatch: x86: make kASLR logic more accurate 2015-04-29 16:51:33 +02:00
local64.h
local.h
mach_timer.h
mach_traps.h
math_emu.h x86/vm86: Clean up vm86.h includes 2015-07-31 13:31:10 +02:00
mc146818rtc.h
mce.h x86/mce: Add a Scalable MCA vendor flags bit 2015-11-01 11:26:13 +01:00
microcode_amd.h x86/microcode: Merge the early microcode loader 2015-10-21 11:22:12 +02:00
microcode_intel.h x86/microcode: Merge the early microcode loader 2015-10-21 11:22:12 +02:00
microcode.h x86/microcode: Remove modularization leftovers 2015-10-21 11:22:12 +02:00
misc.h
mmconfig.h
mmu_context.h x86/ldt: Make modify_ldt() optional 2015-07-31 13:30:45 +02:00
mmu.h x86/ldt: Make modify_ldt() optional 2015-07-31 13:30:45 +02:00
mmx.h
mmzone_32.h
mmzone_64.h
mmzone.h
module.h
mpspec_def.h
mpspec.h
mpx.h x86/mpx: Support 32-bit binaries on 64-bit kernels 2015-06-09 12:24:34 +02:00
mshyperv.h mshyperv: fix recognition of Hyper-V guest crash MSR's 2015-08-04 22:30:44 -07:00
msi.h x86/MSI: Use hierarchical irqdomains to manage MSI interrupts 2015-04-24 15:36:49 +02:00
msidef.h
msr-index.h Merge branch 'pm-tools' 2015-11-16 22:57:02 +01:00
msr.h x86/asm/msr: Make wrmsrl() a function 2015-08-23 13:25:38 +02:00
mtrr.h x86/mm/mtrr: Avoid #ifdeffery with phys_wc_to_mtrr_index() 2015-05-27 14:41:00 +02:00
mutex_32.h
mutex_64.h
mutex.h
mwait.h x86/asm: Add MONITORX/MWAITX instruction support 2015-08-22 14:52:16 +02:00
nmi.h
nops.h
numa_32.h
numa.h
olpc_ofw.h
olpc.h
page_32_types.h
page_32.h
page_64_types.h x86/asm: Move PUD_PAGE macros to page_types.h 2015-09-22 21:27:32 +02:00
page_64.h
page_types.h x86/mm: Fix regression with huge pages on PAE 2015-12-04 09:14:27 +01:00
page.h
paravirt_types.h x86/paravirt: Remove the unused pv_time_ops::get_tsc_khz method 2015-09-14 14:15:22 +02:00
paravirt.h x86/asm/msr: Make wrmsrl() a function 2015-08-23 13:25:38 +02:00
parport.h
pat.h x86/mm/pat: Emulate PAT when it is disabled 2015-06-07 15:28:52 +02:00
pci_64.h
pci_x86.h PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq() 2015-07-30 14:05:57 -05:00
pci-direct.h
pci-functions.h
pci.h Merge branch 'for-4.2/sg' of git://git.kernel.dk/linux-block 2015-06-25 15:22:36 -07:00
percpu.h
perf_event_p4.h
perf_event.h x86: Add new MSRs and MSR bits used for Intel Skylake PMU support 2015-08-04 10:16:56 +02:00
pgalloc.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable_32_types.h
pgtable_32.h
pgtable_64_types.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable_64.h
pgtable_types.h x86/mm: Fix regression with huge pages on PAE 2015-12-04 09:14:27 +01:00
pgtable-2level_types.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable-2level.h
pgtable-3level_types.h x86: expose number of page table levels on Kconfig level 2015-04-14 16:49:02 -07:00
pgtable-3level.h
pgtable.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2015-11-04 11:31:31 -08:00
platform_sst_audio.h
pm-trace.h PM / sleep: add pm-trace support for suspending phase 2015-03-18 15:54:27 +01:00
pmc_atom.h x86/platform/intel/pmc_atom: Add Cherrytrail PMC interface 2015-07-06 18:39:38 +02:00
pmem.h x86, pmem: clarify that ARCH_HAS_PMEM_API implies PMEM mapped WB 2015-08-27 19:40:59 -04:00
posix_types.h
preempt.h sched/core, sched/x86: Kill thread_info::saved_preempt_count 2015-10-06 17:08:18 +02:00
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h Merge branch 'x86-headers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-11-03 21:05:40 -08:00
prom.h
proto.h x86/asm/entry: Untangle 'system_call' into two entry points: entry_SYSCALL_64 and entry_INT80_32 2015-06-08 09:14:21 +02:00
ptrace.h x86/entry: Remove do_notify_resume(), syscall_trace_leave(), and their TIF masks 2015-08-05 10:54:35 +02:00
pvclock-abi.h Revert "KVM: x86: zero kvmclock_offset when vcpu0 initializes kvmclock system MSR" 2015-09-28 13:06:37 +02:00
pvclock.h x86/asm/tsc, x86/kvm: Drop open-coded barrier and use rdtsc_ordered() in kvmclock 2015-07-06 15:23:30 +02:00
qrwlock.h locking/qrwlock: Implement queue_write_unlock() using smp_store_release() 2015-08-12 11:59:05 +02:00
qspinlock_paravirt.h locking/pvqspinlock, x86: Implement the paravirt qspinlock call patching 2015-05-08 12:37:09 +02:00
qspinlock.h locking/qspinlock/x86: Only emit the test-and-set fallback when building guest support 2015-09-11 07:50:12 +02:00
realmode.h
reboot_fixups.h
reboot.h
required-features.h
rio.h
rmwcc.h
rtc.h
rwsem.h
seccomp.h x86: switch to using asm-generic for seccomp.h 2015-04-17 09:04:10 -04:00
sections.h
segment.h x86/asm/irq: Stop relying on magic JMP behavior for early_idt_handlers 2015-06-02 09:39:40 +02:00
serial.h serial: 8250: remove Kconfig indirection 2015-05-06 22:27:00 +02:00
setup_arch.h
setup.h x86: kaslr: fix build due to missing ALIGN definition 2015-04-29 21:54:54 +02:00
shmparam.h
sigcontext.h x86/headers: Remove <asm/sigcontext.h> references on the kernel side 2015-09-08 10:06:05 +02:00
sigframe.h x86/headers: Remove <asm/sigcontext.h> references on the kernel side 2015-09-08 10:06:05 +02:00
sighandling.h x86/signal: Remove pax argument from restore_sigcontext 2015-04-06 09:06:39 +02:00
signal.h x86/headers: Remove <asm/sigcontext.h> references on the kernel side 2015-09-08 10:06:05 +02:00
simd.h x86/fpu: Rename i387.h to fpu/api.h 2015-05-19 15:47:30 +02:00
smap.h
smp.h x86: Remove cpu_sibling_mask() and cpu_core_mask() 2015-05-27 15:22:17 +02:00
sparsemem.h
special_insns.h x86/mm: Add kerneldoc comments for pcommit_sfence() 2015-05-11 10:38:44 +02:00
spinlock_types.h locking/pvqspinlock: Rename QUEUED_SPINLOCK to QUEUED_SPINLOCKS 2015-05-11 09:52:09 +02:00
spinlock.h locking/pvqspinlock: Rename QUEUED_SPINLOCK to QUEUED_SPINLOCKS 2015-05-11 09:52:09 +02:00
sta2x11.h
stackprotector.h x86/asm/tsc: Rename native_read_tsc() to rdtsc() 2015-07-06 15:23:28 +02:00
stacktrace.h
string_32.h
string_64.h x86, kasan: Fix build failure on KASAN=y && KMEMCHECK=y kernels 2015-10-19 10:07:23 +02:00
string.h
suspend_32.h x86/fpu: Rename i387.h to fpu/api.h 2015-05-19 15:47:30 +02:00
suspend_64.h x86/fpu: Rename i387.h to fpu/api.h 2015-05-19 15:47:30 +02:00
suspend.h
svm.h
swiotlb.h
switch_to.h x86/sched/64: Don't save flags on context switch (reinstated) 2015-09-25 09:29:17 +02:00
sync_bitops.h
sys_ia32.h
syscall.h x86/syscalls: Give sys_call_ptr_t a useful type 2015-10-09 09:41:08 +02:00
syscalls.h x86/vm86: Clean up vm86.h includes 2015-07-31 13:31:10 +02:00
sysfb.h
tce.h
thread_info.h Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-11-03 18:59:10 -08:00
time.h
timer.h
timex.h
tlb.h
tlbflush.h mm: send one IPI per CPU to TLB flush all entries after unmapping pages 2015-09-04 16:54:41 -07:00
topology.h Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-06-22 17:59:09 -07:00
trace_clock.h
traps.h x86/entry: Remove exception_enter() from most trap handlers 2015-07-07 10:59:09 +02:00
tsc.h Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-09-01 08:40:25 -07:00
uaccess_32.h Merge branch 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2015-06-22 17:59:09 -07:00
uaccess_64.h x86: reorganize SMAP handling in user space accesses 2015-12-17 09:45:09 -08:00
uaccess.h x86: reorganize SMAP handling in user space accesses 2015-12-17 09:45:09 -08:00
unaligned.h
unistd.h
uprobes.h
user32.h
user_32.h
user_64.h
user.h x86/fpu: Rename xsave.header::xstate_bv to 'xfeatures' 2015-05-19 15:47:35 +02:00
vdso.h x86/vdso/32: Save extra registers in the INT80 vsyscall path 2015-10-09 09:41:06 +02:00
vga.h
vgtod.h
virtext.h
vm86.h x86/vm86: Rename vm86->v86flags and v86mask 2015-07-31 13:31:11 +02:00
vmx.h KVM: VMX: Enable and initialize VMX TSC scaling 2015-11-10 12:06:19 +01:00
vsyscall.h
vvar.h
word-at-a-time.h
x2apic.h
x86_init.h x86/mm: Fix regression with huge pages on PAE 2015-12-04 09:14:27 +01:00
xor_32.h x86/fpu: Rename i387.h to fpu/api.h 2015-05-19 15:47:30 +02:00
xor_64.h
xor_avx.h x86/fpu: Rename i387.h to fpu/api.h 2015-05-19 15:47:30 +02:00
xor.h x86/fpu: Rename i387.h to fpu/api.h 2015-05-19 15:47:30 +02:00