File 57dc109a-change-modify-destroy-xen-mappings-to-return-error.patch of Package xen.8005

# Commit 3eb51dda7106cbee5ff52a976c1ed842744e09a4
# Date 2016-09-16 11:32:42 -0400
# Author Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
# Committer Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arm/x86: change [modify,destroy]_xen_mappings to return error

The implementation on x86 always returns zero, but
other platforms may return error values.

Reviewed-by: Julien Grall <julien.grall@arm.com> [arm bits]
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com> [x86 bits]
Suggested-by: Julien Grall <julien.grall@arm.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>

--- sle12.orig/xen/arch/arm/mm.c	2016-01-28 17:11:48.000000000 +0100
+++ sle12/xen/arch/arm/mm.c	2017-10-09 10:57:52.381593304 +0200
@@ -860,9 +860,10 @@ int map_pages_to_xen(unsigned long virt,
 {
     return create_xen_entries(INSERT, virt, mfn, nr_mfns, flags);
 }
-void destroy_xen_mappings(unsigned long v, unsigned long e)
+
+int destroy_xen_mappings(unsigned long v, unsigned long e)
 {
-    create_xen_entries(REMOVE, v, 0, (e - v) >> PAGE_SHIFT, 0);
+    return create_xen_entries(REMOVE, v, 0, (e - v) >> PAGE_SHIFT, 0);
 }
 
 enum mg { mg_clear, mg_ro, mg_rw, mg_rx };
--- sle12.orig/xen/arch/x86/mm.c	2017-10-09 00:00:00.000000000 +0200
+++ sle12/xen/arch/x86/mm.c	2017-10-09 10:57:52.385593330 +0200
@@ -5751,7 +5751,7 @@ int map_pages_to_xen(
     return 0;
 }
 
-void destroy_xen_mappings(unsigned long s, unsigned long e)
+int destroy_xen_mappings(unsigned long s, unsigned long e)
 {
     bool_t locking = system_state > SYS_STATE_boot;
     l2_pgentry_t *pl2e;
@@ -5888,6 +5888,8 @@ void destroy_xen_mappings(unsigned long
     }
 
     flush_area(NULL, FLUSH_TLB_GLOBAL);
+
+    return 0;
 }
 
 #undef flush_area
--- sle12.orig/xen/include/xen/mm.h	2014-01-31 16:29:46.000000000 +0100
+++ sle12/xen/include/xen/mm.h	2017-10-09 10:57:52.385593330 +0200
@@ -54,7 +54,7 @@ int map_pages_to_xen(
     unsigned long mfn,
     unsigned long nr_mfns,
     unsigned int flags);
-void destroy_xen_mappings(unsigned long v, unsigned long e);
+int destroy_xen_mappings(unsigned long v, unsigned long e);
 
 /* Claim handling */
 unsigned long domain_adjust_tot_pages(struct domain *d, long pages);
openSUSE Build Service is sponsored by