linux/arch
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
..
alpha locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
arc Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
arm Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-03-31 15:27:37 -07:00
arm64 Merge branch 'for-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2014-03-31 15:27:37 -07:00
avr32 Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
blackfin locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
c6x Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
cris Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
frv locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
hexagon locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
ia64 Miscellaneous ia64 fixes for 3.15 merge window 2014-03-31 15:01:16 -07:00
m32r locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
m68k Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2014-03-31 15:00:32 -07:00
metag locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
microblaze Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
mips Merge branch 'compat' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-03-31 14:32:17 -07:00
mn10300 locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
openrisc locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
parisc Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
powerpc Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 11:21:19 -07:00
s390 s390/mm,tlb: safeguard against speculative TLB creation 2014-04-03 14:30:55 +02:00
score locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
sh Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 11:21:19 -07:00
sparc Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 11:21:19 -07:00
tile locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
um locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
unicore32 locking/mcs: Allow architecture specific asm files to be used for contended case 2014-02-09 21:18:52 +01:00
x86 Merge branch 'compat' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2014-03-31 14:32:17 -07:00
xtensa Merge branch 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-03-31 10:59:39 -07:00
.gitignore
Kconfig