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);