diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-04-20 21:20:30 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-04-20 21:20:30 +0200 |
commit | db5dc4996414d61162c9c83bf73e0e2bf2636911 (patch) | |
tree | 2e401d4bb016c7401058477c240b5328d83af326 /arch | |
parent | Merge tag 'keys-fixes-20170419' of git://git.kernel.org/pub/scm/linux/kernel/... (diff) | |
parent | s390/mm: fix CMMA vs KSM vs others (diff) | |
download | linux-db5dc4996414d61162c9c83bf73e0e2bf2636911.tar.xz linux-db5dc4996414d61162c9c83bf73e0e2bf2636911.zip |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 fix from Martin Schwidefsky:
"There is one more fix I would like to see in 4.11: The combination of
KVM, CMMA and heavy paging can cause data corruption, the fix is to
clear the _PAGE_UNUSED bit in set_pte_at()"
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
s390/mm: fix CMMA vs KSM vs others
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/include/asm/pgtable.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 93e37b12e882..ecec682bb516 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -1051,6 +1051,8 @@ static inline void set_pte_at(struct mm_struct *mm, unsigned long addr, { if (!MACHINE_HAS_NX) pte_val(entry) &= ~_PAGE_NOEXEC; + if (pte_present(entry)) + pte_val(entry) &= ~_PAGE_UNUSED; if (mm_has_pgste(mm)) ptep_set_pte_at(mm, addr, ptep, entry); else |