]> git.baikalelectronics.ru Git - kernel.git/commit
s390/mm: handle PTE-mapped tail pages in fast gup
authorGerald Schaefer <gerald.schaefer@de.ibm.com>
Thu, 17 Mar 2016 14:00:04 +0000 (15:00 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 17 Mar 2016 15:42:14 +0000 (16:42 +0100)
commit362310d76e45994c249be9533f790aaea02bea44
treeb0a44cffdfb8193ba708719e9d7a9bb033f64e61
parentbd2694691d8112395ea853ae07f5ca063304aaa4
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 c8a99f80 "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 c8a99f80 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>
arch/s390/mm/gup.c