]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - mm/filemap_xip.c
mm: move all mmu notifier invocations to be done outside the PT lock
[karo-tx-linux.git] / mm / filemap_xip.c
index a52daee11d3feed2bf692a86f9df059f41effe98..a912da6ddfd4a81e2c264a8da957376eac72c2ee 100644 (file)
@@ -192,11 +192,13 @@ retry:
                if (pte) {
                        /* Nuke the page table entry. */
                        flush_cache_page(vma, address, pte_pfn(*pte));
-                       pteval = ptep_clear_flush_notify(vma, address, pte);
+                       pteval = ptep_clear_flush(vma, address, pte);
                        page_remove_rmap(page);
                        dec_mm_counter(mm, MM_FILEPAGES);
                        BUG_ON(pte_dirty(pteval));
                        pte_unmap_unlock(pte, ptl);
+                       /* must invalidate_page _before_ freeing the page */
+                       mmu_notifier_invalidate_page(mm, address);
                        page_cache_release(page);
                }
        }