]> git.proxmox.com Git - pve-kernel.git/blame - swapops-0001-Revert-mm-ksm-handle-protnone-saved-writes-when-maki.patch
add mapping from DEB_BUILD_ARCH to kernel arch subdirectory
[pve-kernel.git] / swapops-0001-Revert-mm-ksm-handle-protnone-saved-writes-when-maki.patch
CommitLineData
2b834b08
FG
1From b4cf3c107f8f1d2da2b606e9d08e241be7000d65 Mon Sep 17 00:00:00 2001
2From: Seth Forshee <seth.forshee@canonical.com>
3Date: Wed, 3 May 2017 08:34:47 -0500
4Subject: [PATCH 1/4] Revert "mm/ksm: handle protnone saved writes when making
5 page write protect"
6
7This reverts commit c228a1037cd6bd0064472ea282e3730a342d6fca.
8
9Signed-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
15diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
16index 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,
41diff --git a/mm/ksm.c b/mm/ksm.c
42index 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--
692.7.4
70