X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=mm%2Fhugetlb.c;h=b61d2db9f34e6cfeff5f2dbe040bbf84a8c30ee4;hb=deda2e81961e96be4f2c09328baca4710a2fd1a0;hp=54d42b009dbeb5feb15c2fb08ac09239e0bf9feb;hpb=772320e84588dcbe1600ffb83e5f328f2209ac2a;p=karo-tx-linux.git diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 54d42b009dbe..b61d2db9f34e 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -2349,11 +2349,17 @@ retry_avoidcopy: ptep = huge_pte_offset(mm, address & huge_page_mask(h)); if (likely(pte_same(huge_ptep_get(ptep), pte))) { /* Break COW */ + mmu_notifier_invalidate_range_start(mm, + address & huge_page_mask(h), + (address & huge_page_mask(h)) + huge_page_size(h)); huge_ptep_clear_flush(vma, address, ptep); set_huge_pte_at(mm, address, ptep, make_huge_pte(vma, new_page, 1)); /* Make the old page be freed below */ new_page = old_page; + mmu_notifier_invalidate_range_end(mm, + address & huge_page_mask(h), + (address & huge_page_mask(h)) + huge_page_size(h)); } page_cache_release(new_page); page_cache_release(old_page);