| From 528a9539348a0234375dfaa1ca5dbbb2f8f8e8d2 Mon Sep 17 00:00:00 2001 |
| From: Janosch Frank <frankja@linux.ibm.com> |
| Date: Tue, 7 Jul 2020 15:38:54 +0200 |
| Subject: s390/mm: fix huge pte soft dirty copying |
| |
| From: Janosch Frank <frankja@linux.ibm.com> |
| |
| commit 528a9539348a0234375dfaa1ca5dbbb2f8f8e8d2 upstream. |
| |
| If the pmd is soft dirty we must mark the pte as soft dirty (and not dirty). |
| This fixes some cases for guest migration with huge page backings. |
| |
| Cc: <stable@vger.kernel.org> # 4.8 |
| Fixes: bc29b7ac1d9f ("s390/mm: clean up pte/pmd encoding") |
| Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> |
| Reviewed-by: Gerald Schaefer <gerald.schaefer@de.ibm.com> |
| Signed-off-by: Janosch Frank <frankja@linux.ibm.com> |
| Signed-off-by: Heiko Carstens <hca@linux.ibm.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/s390/mm/hugetlbpage.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/arch/s390/mm/hugetlbpage.c |
| +++ b/arch/s390/mm/hugetlbpage.c |
| @@ -117,7 +117,7 @@ static inline pte_t __rste_to_pte(unsign |
| _PAGE_YOUNG); |
| #ifdef CONFIG_MEM_SOFT_DIRTY |
| pte_val(pte) |= move_set_bit(rste, _SEGMENT_ENTRY_SOFT_DIRTY, |
| - _PAGE_DIRTY); |
| + _PAGE_SOFT_DIRTY); |
| #endif |
| pte_val(pte) |= move_set_bit(rste, _SEGMENT_ENTRY_NOEXEC, |
| _PAGE_NOEXEC); |