aboutsummaryrefslogtreecommitdiffstats
path: root/mm
diff options
context:
space:
mode:
authorAlex Shi2017-04-08 23:01:24 -0500
committerAlex Shi2017-04-08 23:01:24 -0500
commitaf15ae47855e0f0e0172f912ae38d1c50f7fe27f (patch)
tree0ae3148a3a83200bdbf799a54f3dd4c1b0f911d2 /mm
parente3f0f47b3247686dbac196937c85159743159b8a (diff)
parent8f8ee9706b0a64a3506b9d9789ace7c44f3d817d (diff)
downloadkernel-omap-af15ae47855e0f0e0172f912ae38d1c50f7fe27f.tar.gz
kernel-omap-af15ae47855e0f0e0172f912ae38d1c50f7fe27f.tar.xz
kernel-omap-af15ae47855e0f0e0172f912ae38d1c50f7fe27f.zip
Merge tag 'v4.4.60' into linux-linaro-lsk-v4.4
This is the 4.4.60 stable release
Diffstat (limited to 'mm')
-rw-r--r--mm/hugetlb.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index ea11123a9249..7294301d8495 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -4362,6 +4362,7 @@ follow_huge_pmd(struct mm_struct *mm, unsigned long address,
4362{ 4362{
4363 struct page *page = NULL; 4363 struct page *page = NULL;
4364 spinlock_t *ptl; 4364 spinlock_t *ptl;
4365 pte_t pte;
4365retry: 4366retry:
4366 ptl = pmd_lockptr(mm, pmd); 4367 ptl = pmd_lockptr(mm, pmd);
4367 spin_lock(ptl); 4368 spin_lock(ptl);
@@ -4371,12 +4372,13 @@ retry:
4371 */ 4372 */
4372 if (!pmd_huge(*pmd)) 4373 if (!pmd_huge(*pmd))
4373 goto out; 4374 goto out;
4374 if (pmd_present(*pmd)) { 4375 pte = huge_ptep_get((pte_t *)pmd);
4376 if (pte_present(pte)) {
4375 page = pmd_page(*pmd) + ((address & ~PMD_MASK) >> PAGE_SHIFT); 4377 page = pmd_page(*pmd) + ((address & ~PMD_MASK) >> PAGE_SHIFT);
4376 if (flags & FOLL_GET) 4378 if (flags & FOLL_GET)
4377 get_page(page); 4379 get_page(page);
4378 } else { 4380 } else {
4379 if (is_hugetlb_entry_migration(huge_ptep_get((pte_t *)pmd))) { 4381 if (is_hugetlb_entry_migration(pte)) {
4380 spin_unlock(ptl); 4382 spin_unlock(ptl);
4381 __migration_entry_wait(mm, (pte_t *)pmd, ptl); 4383 __migration_entry_wait(mm, (pte_t *)pmd, ptl);
4382 goto retry; 4384 goto retry;