All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <87sh0wuijl.fsf@yhuang-dev.intel.com>

diff --git a/a/1.txt b/N1/1.txt
index cf57afa..16b0a0b 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -60,3 +60,90 @@ Best Regards,
 Huang, Ying
 
 ---------------------------------->8-----------------------------
+From e1c3e4f565deeb8245bdc4ee53a1f1e4188b6d4a Mon Sep 17 00:00:00 2001
+From: Huang Ying <ying.huang@intel.com>
+Date: Wed, 24 Oct 2018 11:24:15 +0800
+Subject: [PATCH] Fix alignment bug
+
+---
+ include/linux/huge_mm.h | 6 ++----
+ mm/huge_memory.c        | 9 ++++-----
+ mm/swap_state.c         | 2 +-
+ 3 files changed, 7 insertions(+), 10 deletions(-)
+
+diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h
+index 96baae08f47c..e7b3527bc493 100644
+--- a/include/linux/huge_mm.h
++++ b/include/linux/huge_mm.h
+@@ -379,8 +379,7 @@ struct page_vma_mapped_walk;
+ 
+ #ifdef CONFIG_THP_SWAP
+ extern void __split_huge_swap_pmd(struct vm_area_struct *vma,
+-				  unsigned long haddr,
+-				  pmd_t *pmd);
++				  unsigned long addr, pmd_t *pmd);
+ extern int split_huge_swap_pmd(struct vm_area_struct *vma, pmd_t *pmd,
+ 			       unsigned long address, pmd_t orig_pmd);
+ extern int do_huge_pmd_swap_page(struct vm_fault *vmf, pmd_t orig_pmd);
+@@ -411,8 +410,7 @@ static inline bool transparent_hugepage_swapin_enabled(
+ }
+ #else /* CONFIG_THP_SWAP */
+ static inline void __split_huge_swap_pmd(struct vm_area_struct *vma,
+-					 unsigned long haddr,
+-					 pmd_t *pmd)
++					 unsigned long addr, pmd_t *pmd)
+ {
+ }
+ 
+diff --git a/mm/huge_memory.c b/mm/huge_memory.c
+index ed64266b63dc..b2af3bff7624 100644
+--- a/mm/huge_memory.c
++++ b/mm/huge_memory.c
+@@ -1731,10 +1731,11 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd)
+ #ifdef CONFIG_THP_SWAP
+ /* Convert a PMD swap mapping to a set of PTE swap mappings */
+ void __split_huge_swap_pmd(struct vm_area_struct *vma,
+-			   unsigned long haddr,
++			   unsigned long addr,
+ 			   pmd_t *pmd)
+ {
+ 	struct mm_struct *mm = vma->vm_mm;
++	unsigned long haddr = addr & HPAGE_PMD_MASK;
+ 	pgtable_t pgtable;
+ 	pmd_t _pmd;
+ 	swp_entry_t entry;
+@@ -1772,7 +1773,7 @@ int split_huge_swap_pmd(struct vm_area_struct *vma, pmd_t *pmd,
+ 
+ 	ptl = pmd_lock(mm, pmd);
+ 	if (pmd_same(*pmd, orig_pmd))
+-		__split_huge_swap_pmd(vma, address & HPAGE_PMD_MASK, pmd);
++		__split_huge_swap_pmd(vma, address, pmd);
+ 	else
+ 		ret = -ENOENT;
+ 	spin_unlock(ptl);
+@@ -2013,9 +2014,7 @@ bool madvise_free_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma,
+ 			 * swap mapping and operate on the PTEs
+ 			 */
+ 			if (next - addr != HPAGE_PMD_SIZE) {
+-				unsigned long haddr = addr & HPAGE_PMD_MASK;
+-
+-				__split_huge_swap_pmd(vma, haddr, pmd);
++				__split_huge_swap_pmd(vma, addr, pmd);
+ 				goto out;
+ 			}
+ 			free_swap_and_cache(entry, HPAGE_PMD_NR);
+diff --git a/mm/swap_state.c b/mm/swap_state.c
+index 784ad6388da0..fd143ef82351 100644
+--- a/mm/swap_state.c
++++ b/mm/swap_state.c
+@@ -451,7 +451,7 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,
+ 		/* May fail (-ENOMEM) if XArray node allocation failed. */
+ 		__SetPageLocked(new_page);
+ 		__SetPageSwapBacked(new_page);
+-		err = add_to_swap_cache(new_page, entry, gfp_mask & GFP_KERNEL);
++		err = add_to_swap_cache(new_page, hentry, gfp_mask & GFP_KERNEL);
+ 		if (likely(!err)) {
+ 			/* Initiate read into locked page */
+ 			SetPageWorkingset(new_page);
+-- 
+2.18.1
diff --git a/a/content_digest b/N1/content_digest
index b8e95d0..3984616 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -5,8 +5,8 @@
  "Date\0Wed, 24 Oct 2018 11:31:42 +0800\0"
  "To\0Daniel Jordan <daniel.m.jordan@oracle.com>\0"
  "Cc\0Andrew Morton <akpm@linux-foundation.org>"
-  linux-mm@kvack.org
-  linux-kernel@vger.kernel.org
+  <linux-mm@kvack.org>
+  <linux-kernel@vger.kernel.org>
   Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
   Andrea Arcangeli <aarcange@redhat.com>
   Michal Hocko <mhocko@kernel.org>
@@ -81,6 +81,93 @@
  "Best Regards,\n"
  "Huang, Ying\n"
  "\n"
- ---------------------------------->8-----------------------------
+ "---------------------------------->8-----------------------------\n"
+ "From e1c3e4f565deeb8245bdc4ee53a1f1e4188b6d4a Mon Sep 17 00:00:00 2001\n"
+ "From: Huang Ying <ying.huang@intel.com>\n"
+ "Date: Wed, 24 Oct 2018 11:24:15 +0800\n"
+ "Subject: [PATCH] Fix alignment bug\n"
+ "\n"
+ "---\n"
+ " include/linux/huge_mm.h | 6 ++----\n"
+ " mm/huge_memory.c        | 9 ++++-----\n"
+ " mm/swap_state.c         | 2 +-\n"
+ " 3 files changed, 7 insertions(+), 10 deletions(-)\n"
+ "\n"
+ "diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h\n"
+ "index 96baae08f47c..e7b3527bc493 100644\n"
+ "--- a/include/linux/huge_mm.h\n"
+ "+++ b/include/linux/huge_mm.h\n"
+ "@@ -379,8 +379,7 @@ struct page_vma_mapped_walk;\n"
+ " \n"
+ " #ifdef CONFIG_THP_SWAP\n"
+ " extern void __split_huge_swap_pmd(struct vm_area_struct *vma,\n"
+ "-\t\t\t\t  unsigned long haddr,\n"
+ "-\t\t\t\t  pmd_t *pmd);\n"
+ "+\t\t\t\t  unsigned long addr, pmd_t *pmd);\n"
+ " extern int split_huge_swap_pmd(struct vm_area_struct *vma, pmd_t *pmd,\n"
+ " \t\t\t       unsigned long address, pmd_t orig_pmd);\n"
+ " extern int do_huge_pmd_swap_page(struct vm_fault *vmf, pmd_t orig_pmd);\n"
+ "@@ -411,8 +410,7 @@ static inline bool transparent_hugepage_swapin_enabled(\n"
+ " }\n"
+ " #else /* CONFIG_THP_SWAP */\n"
+ " static inline void __split_huge_swap_pmd(struct vm_area_struct *vma,\n"
+ "-\t\t\t\t\t unsigned long haddr,\n"
+ "-\t\t\t\t\t pmd_t *pmd)\n"
+ "+\t\t\t\t\t unsigned long addr, pmd_t *pmd)\n"
+ " {\n"
+ " }\n"
+ " \n"
+ "diff --git a/mm/huge_memory.c b/mm/huge_memory.c\n"
+ "index ed64266b63dc..b2af3bff7624 100644\n"
+ "--- a/mm/huge_memory.c\n"
+ "+++ b/mm/huge_memory.c\n"
+ "@@ -1731,10 +1731,11 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf, pmd_t pmd)\n"
+ " #ifdef CONFIG_THP_SWAP\n"
+ " /* Convert a PMD swap mapping to a set of PTE swap mappings */\n"
+ " void __split_huge_swap_pmd(struct vm_area_struct *vma,\n"
+ "-\t\t\t   unsigned long haddr,\n"
+ "+\t\t\t   unsigned long addr,\n"
+ " \t\t\t   pmd_t *pmd)\n"
+ " {\n"
+ " \tstruct mm_struct *mm = vma->vm_mm;\n"
+ "+\tunsigned long haddr = addr & HPAGE_PMD_MASK;\n"
+ " \tpgtable_t pgtable;\n"
+ " \tpmd_t _pmd;\n"
+ " \tswp_entry_t entry;\n"
+ "@@ -1772,7 +1773,7 @@ int split_huge_swap_pmd(struct vm_area_struct *vma, pmd_t *pmd,\n"
+ " \n"
+ " \tptl = pmd_lock(mm, pmd);\n"
+ " \tif (pmd_same(*pmd, orig_pmd))\n"
+ "-\t\t__split_huge_swap_pmd(vma, address & HPAGE_PMD_MASK, pmd);\n"
+ "+\t\t__split_huge_swap_pmd(vma, address, pmd);\n"
+ " \telse\n"
+ " \t\tret = -ENOENT;\n"
+ " \tspin_unlock(ptl);\n"
+ "@@ -2013,9 +2014,7 @@ bool madvise_free_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma,\n"
+ " \t\t\t * swap mapping and operate on the PTEs\n"
+ " \t\t\t */\n"
+ " \t\t\tif (next - addr != HPAGE_PMD_SIZE) {\n"
+ "-\t\t\t\tunsigned long haddr = addr & HPAGE_PMD_MASK;\n"
+ "-\n"
+ "-\t\t\t\t__split_huge_swap_pmd(vma, haddr, pmd);\n"
+ "+\t\t\t\t__split_huge_swap_pmd(vma, addr, pmd);\n"
+ " \t\t\t\tgoto out;\n"
+ " \t\t\t}\n"
+ " \t\t\tfree_swap_and_cache(entry, HPAGE_PMD_NR);\n"
+ "diff --git a/mm/swap_state.c b/mm/swap_state.c\n"
+ "index 784ad6388da0..fd143ef82351 100644\n"
+ "--- a/mm/swap_state.c\n"
+ "+++ b/mm/swap_state.c\n"
+ "@@ -451,7 +451,7 @@ struct page *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask,\n"
+ " \t\t/* May fail (-ENOMEM) if XArray node allocation failed. */\n"
+ " \t\t__SetPageLocked(new_page);\n"
+ " \t\t__SetPageSwapBacked(new_page);\n"
+ "-\t\terr = add_to_swap_cache(new_page, entry, gfp_mask & GFP_KERNEL);\n"
+ "+\t\terr = add_to_swap_cache(new_page, hentry, gfp_mask & GFP_KERNEL);\n"
+ " \t\tif (likely(!err)) {\n"
+ " \t\t\t/* Initiate read into locked page */\n"
+ " \t\t\tSetPageWorkingset(new_page);\n"
+ "-- \n"
+ 2.18.1
 
-48120268cc7f75cc70239e2097607a496642c5f75ca491646f9879f1813f2953
+9e73bbf98c537081a609e51de6d76ea2480a8883c81f7d2d5f9702eaf88ff039

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.