summaryrefslogtreecommitdiffstats
path: root/mm/migrate.c
diff options
context:
space:
mode:
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>2016-03-17 17:18:56 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-03-17 18:09:34 -0400
commit458aa76d132dc1c3c60be0f0db99bcc0ce1767fc (patch)
tree58fcb5267a2f29c553479af3ab43968522e2cf7a /mm/migrate.c
parentbcf6691797f425b301f629bb783b7ff2d0bcfa5a (diff)
mm/thp/migration: switch from flush_tlb_range to flush_pmd_tlb_range
We remove one instace of flush_tlb_range here. That was added by commit f714f4f20e59 ("mm: numa: call MMU notifiers on THP migration"). But the pmdp_huge_clear_flush_notify should have done the require flush for us. Hence remove the extra flush. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com> Cc: Vineet Gupta <Vineet.Gupta1@synopsys.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/migrate.c')
-rw-r--r--mm/migrate.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/migrate.c b/mm/migrate.c
index 568284ec75d4..fdaf0818fb30 100644
--- a/mm/migrate.c
+++ b/mm/migrate.c
@@ -1773,7 +1773,10 @@ int migrate_misplaced_transhuge_page(struct mm_struct *mm,
1773 put_page(new_page); 1773 put_page(new_page);
1774 goto out_fail; 1774 goto out_fail;
1775 } 1775 }
1776 1776 /*
1777 * We are not sure a pending tlb flush here is for a huge page
1778 * mapping or not. Hence use the tlb range variant
1779 */
1777 if (mm_tlb_flush_pending(mm)) 1780 if (mm_tlb_flush_pending(mm))
1778 flush_tlb_range(vma, mmun_start, mmun_end); 1781 flush_tlb_range(vma, mmun_start, mmun_end);
1779 1782
@@ -1829,12 +1832,11 @@ fail_putback:
1829 page_add_anon_rmap(new_page, vma, mmun_start, true); 1832 page_add_anon_rmap(new_page, vma, mmun_start, true);
1830 pmdp_huge_clear_flush_notify(vma, mmun_start, pmd); 1833 pmdp_huge_clear_flush_notify(vma, mmun_start, pmd);
1831 set_pmd_at(mm, mmun_start, pmd, entry); 1834 set_pmd_at(mm, mmun_start, pmd, entry);
1832 flush_tlb_range(vma, mmun_start, mmun_end);
1833 update_mmu_cache_pmd(vma, address, &entry); 1835 update_mmu_cache_pmd(vma, address, &entry);
1834 1836
1835 if (page_count(page) != 2) { 1837 if (page_count(page) != 2) {
1836 set_pmd_at(mm, mmun_start, pmd, orig_entry); 1838 set_pmd_at(mm, mmun_start, pmd, orig_entry);
1837 flush_tlb_range(vma, mmun_start, mmun_end); 1839 flush_pmd_tlb_range(vma, mmun_start, mmun_end);
1838 mmu_notifier_invalidate_range(mm, mmun_start, mmun_end); 1840 mmu_notifier_invalidate_range(mm, mmun_start, mmun_end);
1839 update_mmu_cache_pmd(vma, address, &entry); 1841 update_mmu_cache_pmd(vma, address, &entry);
1840 page_remove_rmap(new_page, true); 1842 page_remove_rmap(new_page, true);