]> xenbits.xensource.com Git - xen.git/commitdiff
mm: scrub pages returned back to heap if MEMF_no_scrub is set
authorBoris Ostrovsky <boris.ostrovsky@oracle.com>
Tue, 19 Sep 2017 15:47:47 +0000 (17:47 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 19 Sep 2017 15:47:47 +0000 (17:47 +0200)
Set free_heap_pages()'s need_scrub to true if alloc_domheap_pages()
returns pages back to heap as result of assign_pages() error when those
pages were requested with MEMF_no_scrub flag.

We need to do this because there is a possibility that
alloc_heap_pages() might clear buddy's PGC_need_scrubs flag without
actually clearing the page.

Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/common/page_alloc.c

index 7ed8404d2d42bfc7822e79c111ac35e988fe0e92..0b9f6cc6df929b72b0f996618c9f036fc547e821 100644 (file)
@@ -2226,7 +2226,7 @@ struct page_info *alloc_domheap_pages(
     if ( d && !(memflags & MEMF_no_owner) &&
          assign_pages(d, pg, order, memflags) )
     {
-        free_heap_pages(pg, order, false);
+        free_heap_pages(pg, order, memflags & MEMF_no_scrub);
         return NULL;
     }