xen/x86: mem_sharing: Use copy_domain_page in __mem_sharing_unshare_page
authorJulien Grall <julien.grall@linaro.org>
Thu, 5 Oct 2017 17:42:16 +0000 (18:42 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 6 Oct 2017 12:36:43 +0000 (13:36 +0100)
The function __mem_sharing_unshare_page contains an open-code version of
copy_domain_page. Use the function to simplify a bit the code.

At the same time replace _mfn(__page_to_mfn(...)) by page_to_mfn(...)
given that the file given already provides a typesafe version of page_to_mfn.

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Tamas K Lengyel <tamas@tklengyel.com>
xen/arch/x86/mm/mem_sharing.c

index b856028c02efebd14174cc0b47e0643859bf98b5..6f4be95515f6dd57275935164a57989d590dae25 100644 (file)
@@ -1106,7 +1106,6 @@ int __mem_sharing_unshare_page(struct domain *d,
     p2m_type_t p2mt;
     mfn_t mfn;
     struct page_info *page, *old_page;
-    void *s, *t;
     int last_gfn;
     gfn_info_t *gfn_info = NULL;
    
@@ -1185,11 +1184,7 @@ int __mem_sharing_unshare_page(struct domain *d,
         return -ENOMEM;
     }
 
-    s = map_domain_page(_mfn(__page_to_mfn(old_page)));
-    t = map_domain_page(_mfn(__page_to_mfn(page)));
-    memcpy(t, s, PAGE_SIZE);
-    unmap_domain_page(s);
-    unmap_domain_page(t);
+    copy_domain_page(page_to_mfn(page), page_to_mfn(old_page));
 
     BUG_ON(set_shared_p2m_entry(d, gfn, page_to_mfn(page)));
     mem_sharing_gfn_destroy(old_page, d, gfn_info);