Messages in this thread Patch in this message | | | From | Alex Thorlton <> | Subject | [PATCH 3/8] THP: Pass real, not rounded, address to clear_huge_page | Date | Fri, 16 Aug 2013 09:33:59 -0500 |
| |
Conflicts: mm/huge_memory.c --- mm/huge_memory.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 55ec681..2e6f106 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -701,7 +701,8 @@ static inline pmd_t mk_huge_pmd(struct page *page, struct vm_area_struct *vma) static int __do_huge_pmd_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma, - unsigned long haddr, pmd_t *pmd, + unsigned long haddr, + unsigned long address, pmd_t *pmd, struct page *page) { pgtable_t pgtable; @@ -711,12 +712,12 @@ static int __do_huge_pmd_anonymous_page(struct mm_struct *mm, if (unlikely(!pgtable)) return VM_FAULT_OOM; - clear_huge_page(page, haddr, HPAGE_PMD_NR); /* * The memory barrier inside __SetPageUptodate makes sure that * clear_huge_page writes become visible before the set_pmd_at() * write. */ + clear_huge_page(page, address, HPAGE_PMD_NR); __SetPageUptodate(page); spin_lock(&mm->page_table_lock); @@ -825,8 +826,8 @@ int do_huge_pmd_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma, put_page(page); goto out; } - if (unlikely(__do_huge_pmd_anonymous_page(mm, vma, haddr, pmd, - page))) { + if (unlikely(__do_huge_pmd_anonymous_page(mm, vma, haddr, + address, pmd, page))) { mem_cgroup_uncharge_page(page); put_page(page); goto out; -- 1.7.12.4
| |