diff options
Diffstat (limited to 'uksm-patch-for-5.4.69+.patch')
-rw-r--r-- | uksm-patch-for-5.4.69+.patch | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/uksm-patch-for-5.4.69+.patch b/uksm-patch-for-5.4.69+.patch new file mode 100644 index 00000000000..aeb3b203584 --- /dev/null +++ b/uksm-patch-for-5.4.69+.patch @@ -0,0 +1,27 @@ +--- uksm-5.4.68.patch 2020-09-12 21:14:21.870005000 +0800 ++++ uksm-5.4.69.patch 2020-10-01 23:32:11.559514294 +0800 +@@ -1129,18 +1129,14 @@ + + if (!PageAnon(page)) { + if (pte_dirty(ptent)) { +-@@ -2169,8 +2196,10 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo +- clear_page(kaddr); +- kunmap_atomic(kaddr); +- flush_dcache_page(dst); +-- } else +-+ } else { +- copy_user_highpage(dst, src, va, vma); ++@@ -2410,6 +2437,7 @@ static inline bool cow_user_page(struct page *dst, struct page *src, ++ ++ if (likely(src)) { ++ copy_user_highpage(dst, src, addr, vma); + + uksm_cow_page(vma, src); +-+ } +- } ++ return true; ++ } + +- static gfp_t __get_fault_gfp_mask(struct vm_area_struct *vma) + @@ -2322,6 +2351,7 @@ static vm_fault_t wp_page_copy(struct vm_fault *vmf) + vmf->address); + if (!new_page) |