]> xenbits.xensource.com Git - xen.git/commitdiff
x86/mem_sharing: Skip xen heap pages in memshr nominate
authorTamas K Lengyel <tamas.lengyel@intel.com>
Fri, 24 Jan 2020 09:28:56 +0000 (10:28 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 24 Jan 2020 09:28:56 +0000 (10:28 +0100)
Trying to share these would fail anyway, better to skip them early.

Signed-off-by: Tamas K Lengyel <tamas.lengyel@intel.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/mm/mem_sharing.c

index c39e56f5b93d3e9f5518295cb6ee478704b0c833..5ce075d30730e02aabd527c2db4314eb36794b1a 100644 (file)
@@ -840,6 +840,11 @@ static int nominate_page(struct domain *d, gfn_t gfn,
     if ( !p2m_is_sharable(p2mt) )
         goto out;
 
+    /* Skip xen heap pages */
+    page = mfn_to_page(mfn);
+    if ( !page || is_xen_heap_page(page) )
+        goto out;
+
     /* Check if there are mem_access/remapped altp2m entries for this page */
     if ( altp2m_active(d) )
     {
@@ -870,7 +875,6 @@ static int nominate_page(struct domain *d, gfn_t gfn,
     }
 
     /* Try to convert the mfn to the sharable type */
-    page = mfn_to_page(mfn);
     ret = page_make_sharable(d, page, expected_refcnt);
     if ( ret )
         goto out;