linux/arch/s390/mm
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
..
cmm.c s390: convert use of typedef ctl_table to struct ctl_table 2013-10-28 08:36:25 +01:00
dump_pagetables.c s390/mm: cleanup page table definitions 2013-08-22 12:20:06 +02:00
extable.c
extmem.c
fault.c s390/irq: Use defines for external interruption codes 2014-04-03 14:30:52 +02:00
gup.c s390/gup: handle zero nr_pages case correctly 2013-10-24 17:17:01 +02:00
hugetlbpage.c mm: migrate: check movability of hugepage in unmap_and_move_huge_page() 2013-09-11 15:57:49 -07:00
init.c s390: add support for IBM zBC12 machine 2013-07-26 13:25:21 +02:00
maccess.c s390/uaccess: remove copy_from_user_real() 2014-02-24 17:14:00 +01:00
Makefile s390/mem_detect: move memory detection code to mm folder 2013-05-02 15:50:22 +02:00
mem_detect.c s390/mem_detect: fix memory hole handling 2013-06-19 15:36:16 +02:00
mmap.c s390/mmap: randomize mmap base for bottom up direction 2013-11-13 12:09:08 +09:00
page-states.c s390/dump: Fix dump memory detection 2014-02-04 15:39:51 +01:00
pageattr.c s390/mm: do not initialize storage keys 2013-10-24 17:17:00 +02:00
pgtable.c s390/mm,tlb: safeguard against speculative TLB creation 2014-04-03 14:30:55 +02:00
vmem.c s390/mm: implement software referenced bits 2013-08-29 13:20:11 +02:00