instead of the -Exx values (which should go in errno). This patch has HUGE implications. There is a lot of APIs that are using do_memory_op. Fortunatly most of them check for 'if (do_memory_op(..) < 0)' so will function properly. However there were some which printed the return value to the user. They have been fixed in:
libxl: Don't assign return value to errno for E820 get/set xc_ calls. libxl: Check xc_sharing_* for proper return values. libxl: Print xc_domain_decrease_reservation proper errno value. libxl: If xc_domain_add_to_physmap fails, include errno value libxl: Check xc_maximum_ram_page for negative return values. libxl: Check xc_domain_maximum_gpfn for negative return values Signed-off-by: Konrad Rzeszutek Wilk <konrad.w...@oracle.com> --- tools/libxc/xc_private.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/libxc/xc_private.c b/tools/libxc/xc_private.c index 394338a..45903e8 100644 --- a/tools/libxc/xc_private.c +++ b/tools/libxc/xc_private.c @@ -517,11 +517,12 @@ int do_memory_op(xc_interface *xch, int cmd, void *arg, size_t len) { DECLARE_HYPERCALL; DECLARE_HYPERCALL_BOUNCE(arg, len, XC_HYPERCALL_BUFFER_BOUNCE_BOTH); - long ret = -EINVAL; + long ret = -1; if ( xc_hypercall_bounce_pre(xch, arg) ) { PERROR("Could not bounce memory for XENMEM hypercall"); + errno = ENOMEM; goto out1; } -- 2.1.0 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel