linux/arch/x86/include/asm
Borislav Petkov a585df8eda x86/MSR: Carve out bare minimum accessors
Add __rdmsr() and __wrmsr() which *only* read and write an MSR with
exception handling. Those are going to be used in early code, like the
microcode loader, which cannot stomach tracing code piggybacking on the
MSR operation.

While at it, get rid of __native_write_msr_notrace().

Signed-off-by: Borislav Petkov <bp@suse.de>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20170120202955.4091-3-bp@alien8.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2017-01-23 10:02:45 +01:00
..
crypto crypto: glue_helper - Add skcipher xts helpers 2016-11-28 21:23:20 +08:00
fpu x86/fpu: Remove irq_ts_save() and irq_ts_restore() 2016-11-01 07:47:54 +01:00
numachip
trace This release has a few updates: 2016-12-15 13:49:34 -08:00
uv x86/platform/uv/BAU: Add UV4-specific functions 2016-09-22 11:16:15 +02:00
xen Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
a.out-core.h
acenv.h
acpi.h x86/amd: Simplify AMD E400 aware idle routine 2016-12-09 21:23:21 +01:00
agp.h
alternative-asm.h
alternative.h x86/alternatives: Add stack frame dependency to alternative_call_2() 2016-09-24 09:30:03 +02:00
amd_nb.h x86/amd_nb: Add SMN and Indirect Data Fabric access for AMD Fam17h 2016-11-16 20:46:38 +01:00
apb_timer.h
apic.h x86/MSR: Carve out bare minimum accessors 2017-01-23 10:02:45 +01:00
apic_flat_64.h
apicdef.h
apm.h x86, asm: use bool for bitops and other assembly outputs 2016-06-08 12:41:20 -07:00
arch_hweight.h x86/hweight: Get rid of the special calling convention 2016-06-08 15:01:02 +02:00
archrandom.h x86, asm: Use CC_SET()/CC_OUT() and static_cpu_has() in archrandom.h 2016-06-08 12:41:20 -07:00
asm-offsets.h
asm-prototypes.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
asm.h x86, asm: define CC_SET() and CC_OUT() macros 2016-06-08 12:41:20 -07:00
atomic.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 15:34:18 -07:00
atomic64_32.h locking/atomic, arch/x86: Implement atomic{,64}_fetch_{add,sub,and,or,xor}() 2016-06-16 10:48:31 +02:00
atomic64_64.h Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 15:34:18 -07:00
barrier.h locking/x86: Tweak the comment about use of wmb() for IO 2016-01-29 09:40:10 +01:00
bios_ebda.h x86/boot: Reorganize and clean up the BIOS area reservation code 2016-07-21 10:11:57 +02:00
bitops.h mm: optimize PageWaiters bit use for unlock_page() 2016-12-29 11:03:15 -08:00
boot.h x86/KASLR: Build identity mappings on demand 2016-05-07 07:38:39 +02:00
bootparam_utils.h
bug.h
bugs.h x86/mm/mpx: Work around MPX erratum SKD046 2016-05-20 09:07:40 +02:00
cache.h
cacheflush.h remove stray include of asm/uaccess.h from cacheflush.h 2016-09-27 21:15:22 -04:00
calgary.h
ce4100.h
checksum.h
checksum_32.h x86/uaccess: Move thread_info::addr_limit to thread_struct 2016-07-15 10:26:30 +02:00
checksum_64.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
clocksource.h x86/vdso: Remove direct HPET access through the vDSO 2016-04-13 10:28:34 +02:00
cmdline.h
cmpxchg.h x86/cmpxchg, locking/atomics: Remove superfluous definitions 2016-09-30 10:56:01 +02:00
cmpxchg_32.h
cmpxchg_64.h
compat.h x86/coredump: Always use user_regs_struct for compat_elf_gregset_t 2016-11-24 06:01:05 +01:00
cpu.h xen: features and fixes for 4.8-rc0 2016-07-27 11:35:37 -07:00
cpu_device_id.h
cpufeature.h x86/cpufeature: Provide helper to set bugs bits 2016-12-09 21:23:20 +01:00
cpufeatures.h Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-22 09:25:45 -08:00
cpumask.h
crash.h
current.h
debugreg.h
delay.h
desc.h x86: Apply more __ro_after_init and const 2016-08-10 14:55:05 +02:00
desc_defs.h x86/signal/64: Fix SS if needed when delivering a 64-bit signal 2016-02-17 08:32:11 +01:00
device.h x86/PCI: Allow DMA ops specific to a PCI domain 2016-01-15 13:54:55 -06:00
disabled-features.h x86/cpufeature: Make sure DISABLED/REQUIRED macros are updated 2016-06-30 09:11:32 +02:00
div64.h
dma-mapping.h dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
dma.h
dmi.h x86/dmi: Switch dmi_remap() from ioremap() [uncached] to ioremap_cache() 2016-02-09 14:36:43 +01:00
dwarf2.h
e820.h x86: Make E820_X_MAX unconditionally larger than E820MAX 2016-12-09 10:59:04 +01:00
edac.h
efi.h efi: Allow bitness-agnostic protocol calls 2016-11-13 08:23:16 +01:00
elf.h tree-wide: replace config_enabled() with IS_ENABLED() 2016-08-04 08:50:07 -04:00
emergency-restart.h
entry_arch.h
espfix.h
exec.h
export.h x86: move exports to actual definitions 2016-08-07 23:47:15 -04:00
extable.h x86: separate extable.h, switch sections.h to it 2016-09-27 21:15:23 -04:00
fb.h
fixmap.h x86/mm: Make kmap_prot into a #define 2016-01-20 11:39:14 +01:00
floppy.h x86/floppy: Use designated initializers 2016-12-18 09:25:38 +01:00
frame.h x86/asm: Add C versions of frame pointer macros 2016-01-19 12:59:07 +01:00
ftrace.h ftrace/x86: Implement HAVE_FUNCTION_GRAPH_RET_ADDR_PTR 2016-08-24 12:15:15 +02:00
futex.h
gart.h
genapic.h
geode.h
hardirq.h x86/irq: Do not substract irq_tlb_count from irq_call_count 2016-08-11 11:14:59 +02:00
highmem.h
hpet.h
hugetlb.h Merge branch 'x86/urgent' into x86/asm, to fix semantic conflict 2016-04-22 10:13:53 +02:00
hw_breakpoint.h
hw_irq.h x86/irq: Cure live lock in fixup_irqs() 2016-03-18 14:51:06 +01:00
hypertransport.h
hypervisor.h virt, sched: Add generic vCPU pinning support 2016-09-05 13:52:38 +02:00
i8259.h
ia32.h
ia32_unistd.h
imr.h x86/platform/intel/quark: Drop IMR lock bit support 2016-02-23 07:37:23 +01:00
inat.h x86/insn: Add AVX-512 support to the instruction decoder 2016-07-21 09:37:11 -03:00
inat_types.h
init.h x86/power/64: Always create temporary identity mapping correctly 2016-08-08 22:04:30 +02:00
insn.h x86/insn: Add AVX-512 support to the instruction decoder 2016-07-21 09:37:11 -03:00
inst.h
intel-family.h x86/cpu: Fix typo in the comment for Anniedale 2017-01-05 09:03:29 +01:00
intel-mid.h x86/platform/intel-mid: Retrofit pci_platform_pm_ops ->get_state hook 2016-11-07 13:06:59 +01:00
intel_mid_vrtc.h
intel_pmc_ipc.h
intel_pt.h
intel_punit_ipc.h platform:x86: add Intel P-Unit mailbox IPC driver 2016-01-19 15:49:36 -08:00
intel_rdt.h x86/intel_rdt: Call intel_rdt_sched_in() with preemption disabled 2016-12-02 01:13:02 +01:00
intel_rdt_common.h x86/cqm: Share PQR_ASSOC related data between CQM and CAT 2016-10-26 23:12:39 +02:00
intel_scu_ipc.h x86/platform/intel-mid: Implement power off sequence 2016-09-08 08:03:58 +02:00
intel_telemetry.h intel_telemetry: Constify telemetry_core_ops structures 2016-05-05 13:58:55 -07:00
io.h x86/io: add interface to reserve io memtype for a resource range. (v1.1) 2016-10-26 15:45:38 +10:00
io_apic.h
iomap.h
iommu.h
iommu_table.h
iosf_mbi.h
ipi.h x86/apic: Deinline __default_send_IPI_*, save ~200 bytes 2016-03-08 12:26:41 +01:00
irq.h nmi_backtrace: add more trigger_*_cpu_backtrace() methods 2016-10-07 18:46:30 -07:00
irq_regs.h
irq_remapping.h
irq_vectors.h
irq_work.h x86/cpufeature: Replace cpu_has_apic with boot_cpu_has() usage 2016-04-13 11:37:41 +02:00
irqdomain.h
irqflags.h nmi_backtrace: generate one-line reports for idle cpus 2016-10-07 18:46:30 -07:00
ist.h
jump_label.h
kasan.h
kaslr.h x86/mm/64: Enable KASLR for vmemmap memory region 2016-08-10 16:10:06 +02:00
kbdleds.h
Kbuild x86/build: Remove three unneeded genhdr-y entries 2016-11-28 07:49:17 +01:00
kdebug.h x86/dumpstack: Remove kernel text addresses from stack dump 2016-10-25 18:40:37 +02:00
kexec-bzimage64.h
kexec.h x86/panic: replace smp_send_stop() with kdump friendly version in panic path 2016-10-11 15:06:32 -07:00
kgdb.h x86/asm: Stop depending on ptrace.h in alternative.h 2016-04-29 11:56:40 +02:00
kmap_types.h
kmemcheck.h
kprobes.h x86: fix up a few misc stack pointer vs thread_info confusions 2016-06-24 16:55:53 -07:00
kvm_emulate.h
kvm_guest.h
kvm_host.h clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
kvm_page_track.h kvm/page_track: call notifiers with kvm_page_track_notifier_node 2016-11-04 12:13:20 +01:00
kvm_para.h x86/mm: Always enable CONFIG_DEBUG_RODATA and remove the Kconfig option 2016-02-22 08:51:38 +01:00
lguest.h
lguest_hcall.h x86/fpu, lguest: Remove CR0.TS support 2016-11-01 07:47:54 +01:00
linkage.h x86/entry/32: Remove asmlinkage_protect() 2016-05-05 08:37:31 +02:00
livepatch.h x86: Audit and remove any remaining unnecessary uses of module.h 2016-07-14 15:07:00 +02:00
local.h x86, asm: change the GEN_*_RMWcc() macros to not quote the condition 2016-06-08 12:41:20 -07:00
local64.h
mach_timer.h
mach_traps.h
math_emu.h
mc146818rtc.h rtc: cmos: move mc146818rtc code out of asm-generic/rtc.h 2016-06-04 00:20:00 +02:00
mce.h Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-12 19:25:04 -08:00
microcode.h x86/microcode: Rework microcode loading 2016-10-25 12:28:59 +02:00
microcode_amd.h x86/microcode/amd: Move private inlines to .c and mark local functions static 2016-10-25 12:28:59 +02:00
microcode_intel.h x86/microcode/intel: Add a helper which gives the microcode revision 2017-01-09 23:11:14 +01:00
misc.h
mmconfig.h
mmu.h x86/mpx: Move bd_addr to mm_context_t 2016-12-17 12:29:56 +01:00
mmu_context.h x86/ldt: Make all size computations unsigned 2016-12-10 00:24:39 +01:00
mmx.h
mmzone.h
mmzone_32.h
mmzone_64.h
module.h
mpspec.h x86/acpi: Introduce persistent storage for cpuid <-> apicid mapping 2016-09-21 21:18:38 +02:00
mpspec_def.h
mpx.h x86/mpx: Move bd_addr to mm_context_t 2016-12-17 12:29:56 +01:00
mshyperv.h
msi.h
msidef.h
msr-index.h x86/mce: Include the PPIN in MCE records when available 2016-11-23 16:51:52 +01:00
msr-trace.h
msr.h x86/MSR: Carve out bare minimum accessors 2017-01-23 10:02:45 +01:00
mtrr.h x86/mtrr: Fix Xorg crashes in Qemu sessions 2016-03-29 12:23:26 +02:00
mwait.h x86/cpu: Add workaround for MONITOR instruction erratum on Goldmont based CPUs 2016-07-20 09:48:40 +02:00
nmi.h
nops.h
numa.h
numa_32.h
olpc.h
olpc_ofw.h
page.h x86/boot: Split out kernel_ident_mapping_init() 2016-05-07 07:38:39 +02:00
page_32.h
page_32_types.h x86/asm, x86/microcode: Add __PAGE_OFFSET_BASE define on 32-bit 2016-07-27 14:59:59 +02:00
page_64.h
page_64_types.h x86/mm: Enable KASLR for physical mapping memory regions 2016-07-08 17:35:15 +02:00
page_types.h
paravirt.h Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-12 14:27:49 -08:00
paravirt_types.h Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-12 14:27:49 -08:00
parport.h
pat.h x86/xen, pat: Remove PAT table init code from Xen 2016-03-29 12:23:27 +02:00
pci-direct.h
pci-functions.h
pci.h x86/PCI: VMD: Request userspace control of PCIe hotplug indicators 2016-09-23 08:41:08 -05:00
pci_64.h
pci_x86.h Revert "PCI, x86: Implement pcibios_alloc_irq() and pcibios_free_irq()" 2016-02-27 08:52:20 -06:00
percpu.h x86: Remove x86_test_and_clear_bit_percpu() 2016-11-18 12:07:57 +01:00
perf_event.h perf/x86/intel/pt: Don't die on VMXON 2016-04-28 10:32:42 +02:00
perf_event_p4.h
pgalloc.h arch: x86: charge page tables to kmemcg 2016-07-26 16:19:19 -07:00
pgtable-2level.h
pgtable-2level_types.h
pgtable-3level.h
pgtable-3level_types.h
pgtable.h Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-07-25 17:32:28 -07:00
pgtable_32.h
pgtable_32_types.h
pgtable_64.h x86/mm: Drop unused argument 'removed' from sync_global_pgds() 2016-12-15 12:46:07 +01:00
pgtable_64_types.h x86/mm/64: Enable KASLR for vmemmap memory region 2016-08-10 16:10:06 +02:00
pgtable_types.h mm: move phys_mem_access_prot_allowed() declaration to pgtable.h 2016-10-07 18:46:29 -07:00
pkeys.h x86/pkeys: Default to a restrictive init PKRU 2016-09-09 13:02:28 +02:00
platform_sst_audio.h
pm-trace.h
pmc_atom.h
pmc_core.h platform/x86: Add PMC Driver for Intel Core SoC 2016-05-27 11:47:56 -07:00
pmem.h x86/mce: Improve memcpy_mcsafe() 2016-09-05 11:47:31 +02:00
posix_types.h
preempt.h sched/x86: Do not clear PREEMPT_NEED_RESCHED on preempt count reset 2016-11-16 10:29:04 +01:00
probe_roms.h
processor-cyrix.h
processor-flags.h
processor.h x86/CPU: Add native CPUID variants returning a single datum 2017-01-09 23:11:13 +01:00
prom.h
proto.h x86/entry: Vastly simplify SYSENTER TF (single-step) handling 2016-03-10 09:48:13 +01:00
ptrace.h x86/entry: Get rid of two-phase syscall entry work 2016-06-14 10:54:39 -07:00
pvclock-abi.h
pvclock.h clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
qrwlock.h
qspinlock.h x86/paravirt: Optimize native pv_lock_ops.vcpu_is_preempted() 2016-11-22 12:48:11 +01:00
qspinlock_paravirt.h x86/locking: Create stack frame in PV unlock 2016-02-24 08:35:44 +01:00
realmode.h x86/asm/head: Rename 'stack_start' -> 'initial_stack' 2016-08-18 18:41:29 +02:00
reboot.h
reboot_fixups.h
required-features.h x86/cpufeature: Make sure DISABLED/REQUIRED macros are updated 2016-06-30 09:11:32 +02:00
rio.h
rmwcc.h x86, asm: change GEN_*_RMWcc() to use CC_SET()/CC_OUT() 2016-06-08 12:41:20 -07:00
rwsem.h locking/rwsem/x86: Add stack frame dependency for ____down_write() 2016-10-18 12:21:16 +02:00
seccomp.h
sections.h x86: separate extable.h, switch sections.h to it 2016-09-27 21:15:23 -04:00
segment.h x86/arch_prctl/64: Remove FSBASE/GSBASE < 4G optimization 2016-04-29 11:56:41 +02:00
serial.h
setup.h x86/asm: Stop depending on ptrace.h in alternative.h 2016-04-29 11:56:40 +02:00
setup_arch.h
shmparam.h
sigcontext.h
sigframe.h
sighandling.h x86/signal/64: Re-add support for SS in the 64-bit signal context 2016-02-17 08:32:11 +01:00
signal.h x86/signal: Add SA_{X32,IA32}_ABI sa_flags 2016-09-14 21:28:11 +02:00
simd.h
smap.h x86/cpufeature: Carve out X86_FEATURE_* 2016-01-30 11:22:17 +01:00
smp.h x86/panic: replace smp_send_stop() with kdump friendly version in panic path 2016-10-11 15:06:32 -07:00
sparsemem.h
special_insns.h x86/fpu: Remove clts() 2016-11-01 07:47:55 +01:00
spinlock.h x86/paravirt: Optimize native pv_lock_ops.vcpu_is_preempted() 2016-11-22 12:48:11 +01:00
spinlock_types.h x86, locking/spinlocks: Remove ticket (spin)lock implementation 2016-09-30 10:56:00 +02:00
sta2x11.h
stackprotector.h
stacktrace.h x86/unwind: Include __schedule() in stack traces 2017-01-12 09:28:28 +01:00
string.h
string_32.h
string_64.h x86/mce: Improve memcpy_mcsafe() 2016-09-05 11:47:31 +02:00
suspend.h
suspend_32.h
suspend_64.h
svm.h x86/kvm/svm: Simplify cpu_has_svm() 2016-06-16 00:04:31 +02:00
swiotlb.h dma-mapping: use unsigned long for dma_attrs 2016-08-04 08:50:07 -04:00
switch_to.h x86/unwind: Include __schedule() in stack traces 2017-01-12 09:28:28 +01:00
sync_bitops.h x86, bitops: remove use of "sbb" to return CF 2016-06-08 12:41:20 -07:00
sys_ia32.h
syscall.h x86/asm: Move the thread_info::status field to thread_struct 2016-09-15 08:25:12 +02:00
syscalls.h
sysfb.h
tce.h
text-patching.h x86/asm: Stop depending on ptrace.h in alternative.h 2016-04-29 11:56:40 +02:00
thread_info.h sched/core, x86: Make struct thread_info arch specific again 2016-10-20 13:27:47 +02:00
time.h
timer.h
timex.h
tlb.h
tlbflush.h x86/asm: Get rid of __read_cr4_safe() 2016-09-30 12:40:12 +02:00
topology.h sched/x86: Change CONFIG_SCHED_ITMT to CONFIG_SCHED_MC_PRIO 2016-11-30 08:27:08 +01:00
trace_clock.h
traps.h x86/mm: Improve stack-overflow #PF handling 2016-09-08 08:47:20 +02:00
tsc.h clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
uaccess.h x86/uaccess, sched/preempt: Verify access_ok() context 2016-12-06 10:32:40 +01:00
uaccess_32.h x86/uaccess: Enable hardened usercopy 2016-07-26 14:41:48 -07:00
uaccess_64.h x86/uaccess: Enable hardened usercopy 2016-07-26 14:41:48 -07:00
unaligned.h
unistd.h x86/syscalls: Add compat_sys_preadv64v2/compat_sys_pwritev64v2 2016-07-15 10:30:26 +02:00
unwind.h x86/unwind: Dump stack data on warnings 2016-12-19 11:47:05 +01:00
uprobes.h
user.h
user32.h
user_32.h
user_64.h
vdso.h x86/arch_prctl/vdso: Add ARCH_MAP_VDSO_* 2016-09-14 21:28:09 +02:00
vga.h
vgtod.h clocksource: Use a plain u64 instead of cycle_t 2016-12-25 11:04:12 +01:00
virtext.h x86/kvm/svm: Simplify cpu_has_svm() 2016-06-16 00:04:31 +02:00
vm86.h
vmx.h KVM: nVMX: support restore of VMX capability MSRs 2016-12-08 15:31:07 +01:00
vsyscall.h
vvar.h
word-at-a-time.h
x2apic.h
x86_init.h x86/init: Fix a couple of comment typos 2016-12-19 11:34:16 +01:00
xor.h
xor_32.h x86/cpufeature: Replace cpu_has_xmm with boot_cpu_has() usage 2016-04-13 11:37:40 +02:00
xor_64.h
xor_avx.h x86/cpufeature: Replace cpu_has_avx with boot_cpu_has() usage 2016-04-13 11:37:40 +02:00