linux_dsm_epyc7002/arch/s390/include/asm
Martin Schwidefsky 3037a52f98 s390/nmi: do register validation as early as possible
The validation of the CPU registers in the machine check handler is
currently split into two parts. The first part is done at the start
of the low level mcck_int_handler function, this includes the CPU
timer register and the general purpose registers.
The second part is done a bit later in s390_do_machine_check for all
the other registers, including the control registers, floating pointer
control, vector or floating pointer registers, the access registers,
the guarded storage registers, the TOD programmable registers and the
clock comparator.

This is working fine to far but in theory a future extensions could
cause the C code to use registers that are not validated yet. A better
approach is to validate all CPU registers in "safe" assembler code
before any C function is called.

Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2017-10-19 17:07:40 +02:00
..
fpu
trace
airq.h
alternative.h s390: introduce CPU alternatives 2017-10-18 14:11:29 +02:00
ap.h s390/zcrypt: externalize AP queue interrupt control 2017-09-06 09:24:42 +02:00
appldata.h
archrandom.h s390/crypto: Provide s390 specific arch random functionality. 2017-04-26 13:41:35 +02:00
asm-prototypes.h
atomic_ops.h s390/rwlock: introduce rwlock wait queueing 2017-09-28 07:29:44 +02:00
atomic.h
barrier.h
bitops.h s390/bitops: remove outdated comment 2017-03-22 08:29:05 +01:00
bug.h debug: Fix WARN_ON_ONCE() for modules 2017-07-20 12:31:04 +02:00
bugs.h
cache.h
ccwdev.h
ccwgroup.h s390/ccwgroup: tie a ccwgroup driver to its ccw driver 2017-09-29 15:51:30 +02:00
checksum.h
chpid.h
cio.h vfio: ccw: introduce support for ccw0 2017-03-31 12:55:12 +02:00
clp.h
cmb.h
cmpxchg.h
compat.h teach SYSCALL_DEFINE/COMPAT_SYSCALL_DEFINE to handle __bitwise arguments 2017-08-31 17:32:37 -04:00
cpacf.h s390/crypto: add inline assembly for KMA instruction to cpacf.h 2017-09-29 15:51:19 +02:00
cpcmd.h s390/cpcmd,vmcp: avoid GFP_DMA allocations 2017-08-09 09:09:35 -04:00
cpu_mf.h s390/cpu_mf: remove register variable in __ecctr() 2017-03-31 07:53:34 +02:00
cpu.h
cpufeature.h
cputime.h s390/cputime: provide archicture specific cputime_to_nsecs 2017-03-01 09:59:27 +01:00
crw.h
css_chars.h
ctl_reg.h s390/nmi: do register validation as early as possible 2017-10-19 17:07:40 +02:00
current.h
debug.h s390/debug: adjust coding style 2017-10-16 08:19:26 +02:00
delay.h
diag.h s390/diag: add diag26c support 2017-06-20 15:44:15 -04:00
dis.h s390/uprobes: fix compile for !KPROBES 2017-05-03 09:08:57 +02:00
dma-mapping.h s390: implement ->mapping_error 2017-06-28 06:54:31 -07:00
dma.h
eadm.h block: introduce new block status code type 2017-06-09 09:27:32 -06:00
ebcdic.h s390: remove asm/mman.h and asm/types.h 2017-08-02 11:15:36 +02:00
elf.h s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
exec.h
extable.h s390: switch to extable.h 2017-03-28 18:23:55 -04:00
extmem.h
facility.h s390/facilities: get rid of __ASSEMBLY__ in facility header file 2017-03-22 08:29:18 +01:00
fcx.h
ftrace.h
futex.h futex: Remove duplicated code and fix undefined behaviour 2017-08-25 22:49:59 +02:00
gmap.h
hardirq.h
hugetlb.h mm/hugetlb: allow architectures to override huge_pte_clear() 2017-07-06 16:24:34 -07:00
hw_irq.h
idals.h
idle.h
io.h s390: provide default ioremap and iounmap declaration 2017-06-12 16:26:00 +02:00
ipl.h s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
irq.h
irqflags.h
isc.h vfio: ccw: basic implementation for vfio_ccw driver 2017-03-31 12:55:04 +02:00
itcw.h
jump_label.h
Kbuild s390: use generic rwsem implementation 2017-10-04 10:30:31 +02:00
kdebug.h
kexec.h s390/crash: Remove unused KEXEC_NOTE_BYTES 2017-07-05 07:35:29 +02:00
kprobes.h s390/kprobes: remove KPROBE_SWAP_INST state 2017-10-12 07:16:50 +02:00
kvm_host.h s390/sthyi: add cache to store hypervisor info 2017-10-09 11:15:35 +02:00
kvm_para.h
linkage.h
livepatch.h
lowcore.h s390/spinlock: introduce spinlock wait queueing 2017-09-28 07:29:44 +02:00
mmu_context.h s390/mm: use a single lock for the fields in mm_context_t 2017-09-06 09:24:43 +02:00
mmu.h s390/mm: use a single lock for the fields in mm_context_t 2017-09-06 09:24:43 +02:00
mmzone.h s390/numa: add core infrastructure 2015-08-03 18:40:25 +02:00
module.h
nmi.h s390/nmi: do register validation as early as possible 2017-10-19 17:07:40 +02:00
numa.h
os_info.h
page-states.h KVM: s390: expose no-DAT to guest and migration support 2017-08-29 15:15:56 +02:00
page.h s390/mm: add missing virt_to_pfn() etc. helper functions 2017-08-09 09:09:22 -04:00
pci_clp.h
pci_debug.h s390/debug: improve debug_event 2017-10-18 14:11:19 +02:00
pci_dma.h
pci_insn.h s390/pci: improve error handling during interrupt deregistration 2017-06-28 07:32:08 +02:00
pci_io.h
pci.h iommu/s390: Add support for iommu_device handling 2017-08-15 18:22:45 +02:00
percpu.h
perf_event.h s390/cpum_cf: update counter numbers to ecctr limits 2017-03-31 07:53:26 +02:00
pgalloc.h s390/mm: use memset64 instead of clear_table 2017-10-09 11:18:06 +02:00
pgtable.h s390/mm: make pmdp_invalidate() do invalidation only 2017-09-19 08:36:19 +02:00
pkey.h s390/pkey: Introduce new API for secure key verification 2017-03-22 08:29:13 +01:00
preempt.h
processor.h s390/topology: add detection of dedicated vs shared CPUs 2017-09-28 07:29:43 +02:00
ptrace.h s390/kvm: avoid global config of vm.alloc_pgste=1 2017-06-13 13:03:41 +02:00
qdio.h s390/mm: use new mm defines instead of magic values 2017-07-26 08:25:09 +02:00
reset.h
runtime_instr.h s390/runtime_instrumentation: clean up struct runtime_instr_cb 2017-09-28 07:29:40 +02:00
schid.h
sclp.h s390/sclp: Detect KSS facility 2017-04-21 11:08:04 +02:00
scsw.h
seccomp.h
sections.h mm: fix section name for .data..ro_after_init 2017-03-31 17:13:30 -07:00
segment.h
serial.h
set_memory.h treewide: move set_memory_* functions away from cacheflush.h 2017-05-08 17:15:13 -07:00
setup.h s390/vmcp: make use of contiguous memory allocator 2017-08-09 09:09:35 -04:00
shmparam.h
signal.h
sigp.h s390/smp: use sigp condition code define 2017-06-12 16:25:58 +02:00
smp.h s390/nmi: use smp_emergency_stop instead of smp_send_stop 2017-10-19 17:07:32 +02:00
sparsemem.h s390: make MAX_PHYSMEM_BITS configurable 2017-03-28 16:55:10 +02:00
spinlock_types.h s390/rwlock: introduce rwlock wait queueing 2017-09-28 07:29:44 +02:00
spinlock.h s390/spinlock: use cpu alternatives to enable niai instruction 2017-10-18 14:11:33 +02:00
stp.h
string.h s390: cleanup string ops prototypes 2017-10-09 11:18:08 +02:00
switch_to.h s390: add a system call for guarded storage 2017-03-22 08:14:25 +01:00
syscall.h s390/syscalls: Fix out of bounds arguments access 2017-07-05 07:35:30 +02:00
sysinfo.h Merge branch 'sthyi' into features 2017-10-09 11:16:49 +02:00
termios.h
thread_info.h s390/kvm: avoid global config of vm.alloc_pgste=1 2017-06-13 13:03:41 +02:00
timex.h s390/dasd: Change unsigned long long to unsigned long 2017-08-23 13:31:51 +02:00
tlb.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2017-09-05 09:45:46 -07:00
tlbflush.h s390/mm: fix race on mm->context.flush_mm 2017-09-06 09:24:42 +02:00
topology.h s390/topology: add detection of dedicated vs shared CPUs 2017-09-28 07:29:43 +02:00
uaccess.h Merge branch 'work.uaccess-unaligned' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2017-07-15 11:17:52 -07:00
unistd.h
uprobes.h
user.h
vdso.h s390/vdso: move boot_vdso_data to vdso.c 2017-10-18 14:11:36 +02:00
vga.h
vtime.h
vtimer.h
vx-insn.h
xor.h