diff --git a/[refs] b/[refs] index 386e330a3555..55c8d297555b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: c2f3dabefa73fe3307578553f456e93f0a1bca08 +refs/heads/master: c5c99429fa57dcf6e05203ebe3676db1ec646793 diff --git a/trunk/mm/hugetlb.c b/trunk/mm/hugetlb.c index e0fda156f021..db861d8b6c28 100644 --- a/trunk/mm/hugetlb.c +++ b/trunk/mm/hugetlb.c @@ -699,6 +699,11 @@ int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src, dst_pte = huge_pte_alloc(dst, addr); if (!dst_pte) goto nomem; + + /* If the pagetables are shared don't copy or take references */ + if (dst_pte == src_pte) + continue; + spin_lock(&dst->page_table_lock); spin_lock(&src->page_table_lock); if (!pte_none(*src_pte)) {