diff options
-rw-r--r-- | mm/madvise.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mm/madvise.c b/mm/madvise.c index fc6bfbe19a16..738066502ffa 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -610,6 +610,7 @@ static int madvise_inject_error(int behavior, unsigned long start, unsigned long end) { struct page *page; + struct zone *zone; if (!capable(CAP_SYS_ADMIN)) return -EPERM; @@ -643,6 +644,11 @@ static int madvise_inject_error(int behavior, 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 |