s390/mm: fix CMMA vs KSM vs others
authorChristian Borntraeger <borntraeger@de.ibm.com>
Sun, 9 Apr 2017 20:09:38 +0000 (22:09 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 12 Apr 2017 05:40:24 +0000 (07:40 +0200)
commita8f60d1fadf7b8b54449fcc9d6b15248917478ba
tree6e0b4aa27aeb23303c60bdef88cff8dd80eaccb4
parentc08e611b7d0169b513e3b4515ffd51ac7f37f22c
s390/mm: fix CMMA vs KSM vs others

On heavy paging with KSM I see guest data corruption. Turns out that
KSM will add pages to its tree, where the mapping return true for
pte_unused (or might become as such later).  KSM will unmap such pages
and reinstantiate with different attributes (e.g. write protected or
special, e.g. in replace_page or write_protect_page)). This uncovered
a bug in our pagetable handling: We must remove the unused flag as
soon as an entry becomes present again.

Cc: stable@vger.kernel.org
Signed-of-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/pgtable.h