From 7d5daa340973e2724df49592450b52aa58e047cd Mon Sep 17 00:00:00 2001 From: "Aneesh Kumar K.V" Date: Fri, 24 May 2013 15:55:21 -0700 Subject: [PATCH] --- yaml --- r: 376267 b: refs/heads/master c: 7c3425123ddfdc5f48e7913ff59d908789712b18 h: refs/heads/master i: 376265: d932b69da025fb0720bbb3b391c30153cfee5eca 376263: 2eef7830b206da3ea8f947d44b2cce119e3a61e1 v: v3 --- [refs] | 2 +- trunk/mm/huge_memory.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 05e29a5b3b6f..9e764e2d576c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 7450231fb35492951e78a91b833fd935171f4e66 +refs/heads/master: 7c3425123ddfdc5f48e7913ff59d908789712b18 diff --git a/trunk/mm/huge_memory.c b/trunk/mm/huge_memory.c index 03a89a2f464b..362c329b83fe 100644 --- a/trunk/mm/huge_memory.c +++ b/trunk/mm/huge_memory.c @@ -2325,7 +2325,12 @@ static void collapse_huge_page(struct mm_struct *mm, pte_unmap(pte); spin_lock(&mm->page_table_lock); BUG_ON(!pmd_none(*pmd)); - set_pmd_at(mm, address, pmd, _pmd); + /* + * We can only use set_pmd_at when establishing + * hugepmds and never for establishing regular pmds that + * points to regular pagetables. Use pmd_populate for that + */ + pmd_populate(mm, pmd, pmd_pgtable(_pmd)); spin_unlock(&mm->page_table_lock); anon_vma_unlock_write(vma->anon_vma); goto out;