linux-sg2042/arch/s390/include/asm
Martin Schwidefsky 02a8f3abb7 s390/mm,tlb: safeguard against speculative TLB creation
The principles of operations states that the CPU is allowed to create
TLB entries for an address space anytime while an ASCE is loaded to
the control register. This is true even if the CPU is running in the
kernel and the user address space is not (actively) accessed.

In theory this can affect two aspects of the TLB flush logic.
For full-mm flushes the ASCE of the dying process is still attached.
The approach to flush first with IDTE and then just free all page
tables can in theory lead to stale TLB entries. Use the batched
free of page tables for the full-mm flushes as well.

For operations that can have a stale ASCE in the control register,
e.g. a delayed update_user_asce in switch_mm, load the kernel ASCE
to prevent invalid TLBs from being created.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2014-04-03 14:30:55 +02:00
..
Kbuild locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
airq.h s390/airq: add support for irq ranges 2014-02-21 08:50:22 +01:00
appldata.h s390/appldata: change return value of appldata_asm 2012-09-26 15:45:15 +02:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
atomic.h s390/bitops,atomic: add missing memory barriers 2014-04-01 09:23:35 +02:00
barrier.h arch: Introduce smp_load_acquire(), smp_store_release() 2014-01-12 10:37:17 +01:00
bitops.h s390/bitops,atomic: add missing memory barriers 2014-04-01 09:23:35 +02:00
bug.h panic: Allow warnings to set different taint flags 2010-05-19 08:36:48 +01:00
bugs.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cache.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cacheflush.h module: undo module RONX protection correctly. 2011-05-19 16:55:26 +09:30
ccwdev.h s390/cio: reorder initialization of ccw consoles 2014-02-21 08:50:12 +01:00
ccwgroup.h s390/ccwgroup: allow drivers to call set_{on,off}line 2012-11-23 11:14:35 +01:00
checksum.h s390/checksum: remove memset() within csum_partial_copy_from_user() 2014-02-24 17:14:08 +01:00
chpid.h UAPI Disintegration 2012-10-09 2012-10-09 14:18:10 +02:00
cio.h s390/hibernate: add early resume function 2013-08-30 08:57:15 +02:00
clp.h s390/pci: cleanup clp page allocation 2013-02-14 15:55:16 +01:00
cmb.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
cmpxchg.h s390/32bit: fix cmpxchg64 2014-01-22 14:02:15 +01:00
compat.h s390/compat: build error for large compat syscall args 2014-03-06 16:30:47 +01:00
cpcmd.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cpu.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
cpu_mf.h s390/cpum_sf: Add raw data sampling to support the diagnostic-sampling function 2013-12-16 14:38:00 +01:00
cputime.h vtime: Describe overriden functions in dedicated arch headers 2013-08-14 17:14:53 +02:00
crw.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
css_chars.h s390/qdio: bridgeport support - CHSC part 2014-01-15 14:48:01 -08:00
ctl_reg.h s390/sclp: Move early code from sclp_cmd.c to sclp_early.c 2013-11-15 14:08:41 +01:00
current.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
debug.h s390/s390dbf: add debug_level_enabled() function 2013-10-24 17:16:53 +02:00
delay.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
device.h
diag.h [S390] replace diag10() with diag10_range() function 2011-05-10 17:13:43 +02:00
dis.h s390/kprobes: allow kprobes only on known instructions 2013-10-24 17:16:50 +02:00
div64.h
dma-mapping.h s390/dma: remove gratuitous brackets 2013-06-26 21:10:26 +02:00
dma.h s390/pci: define isa_dma_bridge_buggy 2013-01-08 10:57:09 +01:00
eadm.h s390/scm_block: do not hide eadm subchannel dependency 2013-11-15 14:08:42 +01:00
ebcdic.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
elf.h s390: system call path micro optimization 2013-04-26 09:07:05 +02:00
emergency-restart.h
etr.h s390/etr,stp: use -EOPNOTSUPP instead of -ENOSYS 2012-09-26 15:45:14 +02:00
exec.h Disintegrate asm/system.h for S390 2012-03-28 18:30:02 +01:00
extmem.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
facility.h s390/facility: decompose test_facility() 2013-06-26 21:10:25 +02:00
fb.h
fcx.h s390/cio: fix error-prone defines 2013-10-24 17:17:04 +02:00
ftrace.h s390/ftrace: fix mcount adjustment 2013-05-15 13:09:09 +02:00
futex.h s390/uaccess: get rid of indirect function calls 2014-02-21 08:50:14 +01:00
hardirq.h hardirq: Make hardirq bits generic 2013-11-13 20:21:46 +01:00
hugetlb.h s390/mm: cleanup page table definitions 2013-08-22 12:20:06 +02:00
hw_irq.h s390: convert interrupt handling to use generic hardirq 2013-08-22 12:20:04 +02:00
idals.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
io.h s390: remove virt_to_phys implementation 2013-06-26 21:10:02 +02:00
ipl.h s390: Remove unused declaration of zfcpdump_prefix_array[] 2013-10-24 17:17:05 +02:00
irq.h s390/irq: Use defines for external interruption codes 2014-04-03 14:30:52 +02:00
irq_regs.h
irqflags.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
isc.h s390/pci: PCI adapter interrupts for MSI/MSI-X 2012-11-30 17:47:21 +01:00
itcw.h UAPI: Alter the S390 asm include guards to be recognisable by the UAPI splitter 2011-12-13 09:26:45 +00:00
jump_label.h compiler/gcc4: Add quirk for 'asm goto' miscompilation bug 2013-10-11 07:39:14 +02:00
kdebug.h [S390] cleanup trap handling 2011-12-27 11:27:12 +01:00
kexec.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
kmap_types.h s390/headers: remove #ifdef __KERNEL__ from not exported headers 2012-05-24 10:10:05 +02:00
kprobes.h s390/kprobes: add support for pc-relative long displacement instructions 2013-09-11 15:58:52 -07:00
kvm_host.h s390/kvm: support collaborative memory management 2014-02-21 08:50:19 +01:00
kvm_para.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
linkage.h [S390] fix s390 assembler code alignments 2011-07-24 10:48:21 +02:00
local.h
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
lowcore.h s390: add support for transactional memory 2012-09-26 15:45:02 +02:00
mathemu.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
mman.h s390/mm: Fix crst upgrade of mmap with MAP_FIXED 2013-02-14 15:55:22 +01:00
mmu.h KVM: s390: allow sie enablement for multi-threaded programs 2013-07-29 09:03:09 +02:00
mmu_context.h s390/mm,tlb: safeguard against speculative TLB creation 2014-04-03 14:30:55 +02:00
module.h Make most arch asm/module.h files use asm-generic/module.h 2012-09-28 14:31:03 +09:30
mutex.h mutex: replace CONFIG_HAVE_ARCH_MUTEX_CPU_RELAX with simple ifdef 2013-09-28 12:46:21 +02:00
nmi.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
os_info.h s390/kernel: Remove OS info init function call and diag 308 for kdump 2012-05-23 17:06:50 +02:00
page.h s390/mm: optimize copy_page 2013-11-20 09:04:55 +01:00
pci.h s390/pci: prevent inadvertently triggered bus scans 2013-12-16 14:37:54 +01:00
pci_clp.h s390/pci: CLP interface 2012-11-30 15:40:47 +01:00
pci_debug.h s390/pci: remove CONFIG_PCI_DEBUG dependancy 2013-10-24 17:17:16 +02:00
pci_dma.h s390/pci: DMA support 2012-11-30 17:47:23 +01:00
pci_insn.h s390/pci: cleanup function information block 2013-10-24 17:17:17 +02:00
pci_io.h s390/pci: cleanup function names 2013-08-22 12:20:03 +02:00
percpu.h s390/percpu: remove this_cpu_xor() implementation 2013-10-31 09:53:58 +01:00
perf_event.h s390/cpum_sf: Add flag to process full SDBs only 2013-12-16 14:38:01 +01:00
pgalloc.h s390/mm: enable split page table lock for PMD level 2014-02-21 08:50:22 +01:00
pgtable.h s390/mm: remove unecessary parameter from pgste_ipte_notify 2014-03-21 09:58:01 +01:00
processor.h s390/mm,tlb: correct tlb flush on page table upgrade 2013-11-04 13:51:47 +01:00
ptrace.h s390/ptrace: add support for PTRACE_SINGLEBLOCK 2014-03-14 12:59:38 +01:00
qdio.h s390: Fix misspellings using 'codespell' tool 2014-01-16 16:40:13 +01:00
reset.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
runtime_instr.h s390: add support for runtime instrumentation 2012-09-26 15:45:02 +02:00
rwsem.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
scatterlist.h [S390] set ARCH_HAS_SG_CHAIN for s390 2010-10-25 16:10:15 +02:00
schid.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
sclp.h s390/smp: limit number of cpus in possible cpu mask 2014-03-17 15:53:06 +01:00
scsw.h s390: add eadm related structures 2012-09-26 15:44:57 +02:00
seccomp.h [S390] secure computing arch backend 2009-06-12 10:27:31 +02:00
sections.h
segment.h
serial.h s390: convert interrupt handling to use generic hardirq 2013-08-22 12:20:04 +02:00
setup.h s390/setup: get rid of MACHINE_HAS_MVCOS machine flag 2014-02-21 08:50:15 +01:00
sfp-machine.h
sfp-util.h s390/headers: replace __s390x__ with CONFIG_64BIT where possible 2012-05-24 10:10:10 +02:00
shmparam.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
signal.h s390: switch to generic old sigaction() 2013-02-03 18:16:14 -05:00
sigp.h KVM: s390: SIGP START has to report BUSY while stopping a CPU 2013-12-11 19:05:21 +01:00
smp.h s390/smp: improve setup of possible cpu mask 2013-12-18 17:35:18 +01:00
sparsemem.h s390/mm: remove MAX_PHYSADDR_BITS define 2012-08-08 07:32:55 -07:00
spinlock.h s390: enable ARCH_USE_CMPXCHG_LOCKREF 2013-09-28 12:46:29 +02:00
spinlock_types.h locking: Convert raw_rwlock to arch_rwlock 2009-12-14 23:55:32 +01:00
string.h s390/string: provide asm lib functions for memcpy and memcmp 2012-09-26 15:44:50 +02:00
switch_to.h s390: fix save and restore of the floating-point-control register 2013-10-24 17:17:11 +02:00
syscall.h s390: system call path micro optimization 2013-04-26 09:07:05 +02:00
sysinfo.h s390/sysinfo,stsi: change return code handling 2012-09-26 15:45:12 +02:00
termios.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
thread_info.h s390/ptrace: add support for PTRACE_SINGLEBLOCK 2014-03-14 12:59:38 +01:00
timex.h s390/time: fix get_tod_clock_ext inline assembly 2013-10-31 09:52:48 +01:00
tlb.h s390/mm,tlb: safeguard against speculative TLB creation 2014-04-03 14:30:55 +02:00
tlbflush.h s390/mm: introduce ptep_flush_lazy helper 2013-08-22 12:20:09 +02:00
topology.h s390/topology: cleanup topology code 2012-11-23 11:14:31 +01:00
types.h UAPI: (Scripted) Disintegrate arch/s390/include/asm 2012-10-09 09:47:31 +01:00
uaccess.h s390/uaccess: remove copy_from_user_real() 2014-02-24 17:14:00 +01:00
unaligned.h
unistd.h consolidate cond_syscall and SYSCALL_ALIAS declarations 2013-03-03 22:55:19 -05:00
user.h s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
vdso.h s390/time,vdso: convert to the new update_vsyscall interface 2013-11-25 09:15:39 +01:00
vga.h vga: compile fix, disable vga for s390 2012-11-30 17:47:28 +01:00
vtime.h vtime: Describe overriden functions in dedicated arch headers 2013-08-14 17:14:53 +02:00
vtimer.h s390/vtimer: rework virtual timer interface 2012-07-20 11:15:08 +02:00
xor.h