linux/arch/s390/mm
David Hildenbrand f045402984 s390/mm: fix gmap tlb flush issues
__tlb_flush_asce() should never be used if multiple asce belong to a mm.

As this function changes mm logic determining if local or global tlb
flushes will be neded, we might end up flushing only the gmap asce on all
CPUs and a follow up mm asce flushes will only flush on the local CPU,
although that asce ran on multiple CPUs.

The missing tlb flushes will provoke strange faults in user space and even
low address protections in user space, crashing the kernel.

Fixes: 1b948d6cae ("s390/mm,tlb: optimize TLB flushing for zEC12")
Cc: stable@vger.kernel.org # 3.15+
Reported-by: Sascha Silbe <silbe@linux.vnet.ibm.com>
Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2016-07-13 10:58:01 +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/pgtable: get rid of _REGION3_ENTRY_RO 2016-06-13 15:58:14 +02:00
extmem.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
fault.c s390: avoid extable collisions 2016-06-13 15:58:26 +02:00
gmap.c s390/mm: fix gmap tlb flush issues 2016-07-13 10:58:01 +02:00
gup.c s390/mm: add support for 2GB hugepages 2016-07-06 08:46:43 +02:00
hugetlbpage.c s390/mm: add support for 2GB hugepages 2016-07-06 08:46:43 +02:00
init.c s390: add proper __ro_after_init support 2016-06-13 15:58:23 +02:00
maccess.c s390/maccess: reduce stnsm instructions 2016-02-17 09:05:04 +01:00
Makefile s390/extable: use generic search and sort routines 2016-03-22 15:36:02 -07:00
mem_detect.c s390/mem_detect: use unsigned longs 2016-01-11 12:27:11 +01:00
mmap.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux 2016-05-18 12:17:16 -07:00
page-states.c s390/mm: use basic block for essa inline assembly 2016-06-28 09:32:29 +02:00
pageattr.c s390/mm: fix compile for PAGE_DEFAULT_KEY != 0 2016-06-14 16:54:05 +02:00
pgalloc.c s390/mm: fix asce_bits handling with dynamic pagetable levels 2016-04-21 09:50:09 +02:00
pgtable.c s390/mm: add support for 2GB hugepages 2016-07-06 08:46:43 +02:00
vmem.c s390: add proper __ro_after_init support 2016-06-13 15:58:23 +02:00