aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonsoo Kim <iamjoonsoo.kim@lge.com>2013-09-11 14:21:57 -0700
committerMark Brown <broonie@linaro.org>2014-06-12 16:10:34 +0100
commitac4d3d9758eb3e345c70709b8fdbeb26f5456b24 (patch)
treef76af4602dfe8b5327d6121827c8d86514f4f71b
parentffb684469290a85ce0eb83162b5138f1e3b71d2d (diff)
downloadlinux-linaro-stable-ac4d3d9758eb3e345c70709b8fdbeb26f5456b24.tar.gz
mm, hugetlb: grab a page_table_lock after page_cache_release
We don't need to grab a page_table_lock when we try to release a page. So, defer to grab a page_table_lock. Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> Reviewed-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> Cc: Aneesh Kumar <aneesh.kumar@linux.vnet.ibm.com> Reviewed-by: Davidlohr Bueso <davidlohr@hp.com> Cc: David Gibson <david@gibson.dropbear.id.au> Cc: Wanpeng Li <liwanp@linux.vnet.ibm.com> Cc: Hillf Danton <dhillf@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> (cherry picked from commit 8312034f3604bc0339c40545c538116f4ddad152) Signed-off-by: Mark Brown <broonie@linaro.org>
-rw-r--r--mm/hugetlb.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index 83abac5f41ce..e118c01ae663 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -2641,10 +2641,11 @@ retry_avoidcopy:
}
spin_unlock(&mm->page_table_lock);
mmu_notifier_invalidate_range_end(mm, mmun_start, mmun_end);
- /* Caller expects lock to be held */
- spin_lock(&mm->page_table_lock);
page_cache_release(new_page);
page_cache_release(old_page);
+
+ /* Caller expects lock to be held */
+ spin_lock(&mm->page_table_lock);
return 0;
}