]> git.proxmox.com Git - pve-kernel.git/blob - swapops-0001-Revert-mm-ksm-handle-protnone-saved-writes-when-maki.patch
build-sys: replace fixed architecture use where possible
[pve-kernel.git] / swapops-0001-Revert-mm-ksm-handle-protnone-saved-writes-when-maki.patch
1 From b4cf3c107f8f1d2da2b606e9d08e241be7000d65 Mon Sep 17 00:00:00 2001
2 From: Seth Forshee <seth.forshee@canonical.com>
3 Date: Wed, 3 May 2017 08:34:47 -0500
4 Subject: [PATCH 1/4] Revert "mm/ksm: handle protnone saved writes when making
5 page write protect"
6
7 This reverts commit c228a1037cd6bd0064472ea282e3730a342d6fca.
8
9 Signed-off-by: Seth Forshee <seth.forshee@canonical.com>
10 ---
11 include/asm-generic/pgtable.h | 8 --------
12 mm/ksm.c | 9 ++-------
13 2 files changed, 2 insertions(+), 15 deletions(-)
14
15 diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
16 index 8c8ba48bef0b..b6f3a8a4b738 100644
17 --- a/include/asm-generic/pgtable.h
18 +++ b/include/asm-generic/pgtable.h
19 @@ -200,10 +200,6 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres
20 #define pte_mk_savedwrite pte_mkwrite
21 #endif
22
23 -#ifndef pte_clear_savedwrite
24 -#define pte_clear_savedwrite pte_wrprotect
25 -#endif
26 -
27 #ifndef pmd_savedwrite
28 #define pmd_savedwrite pmd_write
29 #endif
30 @@ -212,10 +208,6 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addres
31 #define pmd_mk_savedwrite pmd_mkwrite
32 #endif
33
34 -#ifndef pmd_clear_savedwrite
35 -#define pmd_clear_savedwrite pmd_wrprotect
36 -#endif
37 -
38 #ifndef __HAVE_ARCH_PMDP_SET_WRPROTECT
39 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
40 static inline void pmdp_set_wrprotect(struct mm_struct *mm,
41 diff --git a/mm/ksm.c b/mm/ksm.c
42 index abc05187168a..9dd2e58fb6dc 100644
43 --- a/mm/ksm.c
44 +++ b/mm/ksm.c
45 @@ -880,8 +880,7 @@ static int write_protect_page(struct vm_area_struct *vma, struct page *page,
46 if (WARN_ONCE(!pvmw.pte, "Unexpected PMD mapping?"))
47 goto out_unlock;
48
49 - if (pte_write(*pvmw.pte) || pte_dirty(*pvmw.pte) ||
50 - (pte_protnone(*pvmw.pte) && pte_savedwrite(*pvmw.pte))) {
51 + if (pte_write(*pvmw.pte) || pte_dirty(*pvmw.pte)) {
52 pte_t entry;
53
54 swapped = PageSwapCache(page);
55 @@ -906,11 +905,7 @@ static int write_protect_page(struct vm_area_struct *vma, struct page *page,
56 }
57 if (pte_dirty(entry))
58 set_page_dirty(page);
59 -
60 - if (pte_protnone(entry))
61 - entry = pte_mkclean(pte_clear_savedwrite(entry));
62 - else
63 - entry = pte_mkclean(pte_wrprotect(entry));
64 + entry = pte_mkclean(pte_wrprotect(entry));
65 set_pte_at_notify(mm, pvmw.address, pvmw.pte, entry);
66 }
67 *orig_pte = *pvmw.pte;
68 --
69 2.7.4
70