Merge tag 'audit-pr-20210215' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoor...
[linux-2.6-microblaze.git] / mm / madvise.c
index 13f5677..0938fd3 100644 (file)
@@ -506,9 +506,9 @@ static long madvise_cold(struct vm_area_struct *vma,
                return -EINVAL;
 
        lru_add_drain();
-       tlb_gather_mmu(&tlb, mm, start_addr, end_addr);
+       tlb_gather_mmu(&tlb, mm);
        madvise_cold_page_range(&tlb, vma, start_addr, end_addr);
-       tlb_finish_mmu(&tlb, start_addr, end_addr);
+       tlb_finish_mmu(&tlb);
 
        return 0;
 }
@@ -558,9 +558,9 @@ static long madvise_pageout(struct vm_area_struct *vma,
                return 0;
 
        lru_add_drain();
-       tlb_gather_mmu(&tlb, mm, start_addr, end_addr);
+       tlb_gather_mmu(&tlb, mm);
        madvise_pageout_page_range(&tlb, vma, start_addr, end_addr);
-       tlb_finish_mmu(&tlb, start_addr, end_addr);
+       tlb_finish_mmu(&tlb);
 
        return 0;
 }
@@ -723,7 +723,7 @@ static int madvise_free_single_vma(struct vm_area_struct *vma,
                                range.start, range.end);
 
        lru_add_drain();
-       tlb_gather_mmu(&tlb, mm, range.start, range.end);
+       tlb_gather_mmu(&tlb, mm);
        update_hiwater_rss(mm);
 
        mmu_notifier_invalidate_range_start(&range);
@@ -732,7 +732,7 @@ static int madvise_free_single_vma(struct vm_area_struct *vma,
                        &madvise_free_walk_ops, &tlb);
        tlb_end_vma(&tlb, vma);
        mmu_notifier_invalidate_range_end(&range);
-       tlb_finish_mmu(&tlb, range.start, range.end);
+       tlb_finish_mmu(&tlb);
 
        return 0;
 }
@@ -877,7 +877,6 @@ static long madvise_remove(struct vm_area_struct *vma,
 static int madvise_inject_error(int behavior,
                unsigned long start, unsigned long end)
 {
-       struct zone *zone;
        unsigned long size;
 
        if (!capable(CAP_SYS_ADMIN))
@@ -908,24 +907,13 @@ static int madvise_inject_error(int behavior,
                } else {
                        pr_info("Injecting memory failure for pfn %#lx at process virtual address %#lx\n",
                                 pfn, start);
-                       /*
-                        * Drop the page reference taken by get_user_pages_fast(). In
-                        * the absence of MF_COUNT_INCREASED the memory_failure()
-                        * routine is responsible for pinning the page to prevent it
-                        * from being released back to the page allocator.
-                        */
-                       put_page(page);
-                       ret = memory_failure(pfn, 0);
+                       ret = memory_failure(pfn, MF_COUNT_INCREASED);
                }
 
                if (ret)
                        return ret;
        }
 
-       /* Ensure that all poisoned pages are removed from per-cpu lists */
-       for_each_populated_zone(zone)
-               drain_all_pages(zone);
-
        return 0;
 }
 #endif