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.