kernel-ark/arch/s390/mm
Gerald Schaefer fc897c95e9 s390/mm: handle PTE-mapped tail pages in fast gup
With the THP refcounting rework it is possible to see THP compound tail
pages mapped with PTEs during a THP split. This needs to be considered
when using page_cache_get_speculative(), which will always fail on tail
pages because ->_count is always zero. commit 7aef4172 "mm: handle
PTE-mapped tail pages in gerneric fast gup implementaiton" fixed it for
the generic fast gup code by using compound_head(page) instead of page,
but not for s390.

This patch is a 1:1 adaption of commit 7aef4172 for the s390 fast gup
code. Without this fix, gup will fall back to the slow path or fail
in the unlikely scenario that we hit a THP under splitting in-between
the page table split and the compound page split.

Cc: stable@vger.kernel.org # v4.5
Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2016-03-17 16:42:14 +01: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: remove 31 bit support 2015-03-25 11:49:33 +01:00
extable.c s390: fix normalization bug in exception table sorting 2016-01-11 13:02:28 +01:00
extmem.c s390: Use pr_warn instead of pr_warning 2016-03-07 13:12:04 +01:00
fault.c s390/mm: split arch/s390/mm/pgtable.c 2016-03-08 15:00:15 +01:00
gmap.c s390/mm: split arch/s390/mm/pgtable.c 2016-03-08 15:00:15 +01:00
gup.c s390/mm: handle PTE-mapped tail pages in fast gup 2016-03-17 16:42:14 +01:00
hugetlbpage.c s390/mm: uninline pmdp_xxx functions from pgtable.h 2016-03-08 15:00:14 +01:00
init.c s390: add DEBUG_RODATA support 2016-03-17 13:18:25 +01:00
maccess.c s390/maccess: reduce stnsm instructions 2016-02-17 09:05:04 +01:00
Makefile s390/mm: split arch/s390/mm/pgtable.c 2016-03-08 15:00:15 +01:00
mem_detect.c s390/mem_detect: use unsigned longs 2016-01-11 12:27:11 +01:00
mmap.c s390/mm: use TASK_MAX_SIZE where applicable 2016-01-19 12:14:01 +01:00
page-states.c s390/cmma: remove "cmma disable" code in case of dump again 2014-05-20 08:58:42 +02:00
pageattr.c s390/pageattr: do a single TLB flush for change_page_attr 2016-02-23 08:56:17 +01:00
pgalloc.c s390/mm: split arch/s390/mm/pgtable.c 2016-03-08 15:00:15 +01:00
pgtable.c s390/mm: split arch/s390/mm/pgtable.c 2016-03-08 15:00:15 +01:00
vmem.c s390: query dynamic DEBUG_PAGEALLOC setting 2016-03-15 16:55:16 -07:00