diff options
Diffstat (limited to 'mm/memcontrol.c')
-rw-r--r-- | mm/memcontrol.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 26c6f4ec20f..37281816ff6 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -5230,6 +5230,8 @@ static int mem_cgroup_count_precharge_pte_range(pmd_t *pmd, | |||
5230 | spinlock_t *ptl; | 5230 | spinlock_t *ptl; |
5231 | 5231 | ||
5232 | split_huge_page_pmd(walk->mm, pmd); | 5232 | split_huge_page_pmd(walk->mm, pmd); |
5233 | if (pmd_trans_unstable(pmd)) | ||
5234 | return 0; | ||
5233 | 5235 | ||
5234 | pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); | 5236 | pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); |
5235 | for (; addr != end; pte++, addr += PAGE_SIZE) | 5237 | for (; addr != end; pte++, addr += PAGE_SIZE) |
@@ -5390,6 +5392,8 @@ static int mem_cgroup_move_charge_pte_range(pmd_t *pmd, | |||
5390 | spinlock_t *ptl; | 5392 | spinlock_t *ptl; |
5391 | 5393 | ||
5392 | split_huge_page_pmd(walk->mm, pmd); | 5394 | split_huge_page_pmd(walk->mm, pmd); |
5395 | if (pmd_trans_unstable(pmd)) | ||
5396 | return 0; | ||
5393 | retry: | 5397 | retry: |
5394 | pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); | 5398 | pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl); |
5395 | for (; addr != end; addr += PAGE_SIZE) { | 5399 | for (; addr != end; addr += PAGE_SIZE) { |