diff options
author | Martin Schwidefsky <[email protected]> | 2018-01-31 16:18:05 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2018-01-31 17:18:38 -0800 |
commit | 9c4563f11fcd5c65efcd64db2b974bd9b1728eef (patch) | |
tree | 353e50503e2a9a0a99dd0a8535de3f1c1679d5fd | |
parent | 8cc931e03339eebbdbaa2ac1998d25a8a90b77d4 (diff) |
s390/mm: modify pmdp_invalidate to return old value.
It's required to avoid losing dirty and accessed bits.
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Martin Schwidefsky <[email protected]>
Signed-off-by: Kirill A. Shutemov <[email protected]>
Cc: Vlastimil Babka <[email protected]>
Cc: Andrea Arcangeli <[email protected]>
Cc: Michal Hocko <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | arch/s390/include/asm/pgtable.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 0a6b0286c32e..2d24d33bf188 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -1505,12 +1505,12 @@ static inline pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma, } #define __HAVE_ARCH_PMDP_INVALIDATE -static inline void pmdp_invalidate(struct vm_area_struct *vma, +static inline pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long addr, pmd_t *pmdp) { pmd_t pmd = __pmd(pmd_val(*pmdp) | _SEGMENT_ENTRY_INVALID); - pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd); + return pmdp_xchg_direct(vma->vm_mm, addr, pmdp, pmd); } #define __HAVE_ARCH_PMDP_SET_WRPROTECT |