@@ -6238,14 +6238,14 @@ uint32_t libxl_vm_get_start_time(libxl_ctx *ctx, uint32_t domid)
char *libxl_tmem_list(libxl_ctx *ctx, uint32_t domid, int use_long)
{
- int rc;
+ int r;
char _buf[32768];
GC_INIT(ctx);
- rc = xc_tmem_control(ctx->xch, -1, XEN_SYSCTL_TMEM_OP_LIST, domid, 32768, use_long,
+ r = xc_tmem_control(ctx->xch, -1, XEN_SYSCTL_TMEM_OP_LIST, domid, 32768, use_long,
_buf);
- if (rc < 0) {
- LOGEV(ERROR, rc, "Can not get tmem list");
+ if (r < 0) {
+ LOGEV(ERROR, r, "Can not get tmem list");
GC_FREE;
return NULL;
}
@@ -6256,34 +6256,38 @@ char *libxl_tmem_list(libxl_ctx *ctx, uint32_t domid, int use_long)
int libxl_tmem_freeze(libxl_ctx *ctx, uint32_t domid)
{
- int rc;
+ int r, rc;
GC_INIT(ctx);
- rc = xc_tmem_control(ctx->xch, -1, XEN_SYSCTL_TMEM_OP_FREEZE, domid, 0, 0,
+ r = xc_tmem_control(ctx->xch, -1, XEN_SYSCTL_TMEM_OP_FREEZE, domid, 0, 0,
NULL);
- if (rc < 0) {
- LOGEV(ERROR, rc, "Can not freeze tmem pools");
- GC_FREE;
- return ERROR_FAIL;
+ if (r < 0) {
+ LOGEV(ERROR, r, "Can not freeze tmem pools");
+ rc = ERROR_FAIL;
+ goto out;
}
+ rc = 0;
+out:
GC_FREE;
return rc;
}
int libxl_tmem_thaw(libxl_ctx *ctx, uint32_t domid)
{
- int rc;
+ int r, rc;
GC_INIT(ctx);
- rc = xc_tmem_control(ctx->xch, -1, XEN_SYSCTL_TMEM_OP_THAW, domid, 0, 0,
+ r = xc_tmem_control(ctx->xch, -1, XEN_SYSCTL_TMEM_OP_THAW, domid, 0, 0,
NULL);
- if (rc < 0) {
- LOGEV(ERROR, rc, "Can not thaw tmem pools");
- GC_FREE;
- return ERROR_FAIL;
+ if (r < 0) {
+ LOGEV(ERROR, r, "Can not thaw tmem pools");
+ rc = ERROR_FAIL;
+ goto out;
}
+ rc = 0;
+out:
GC_FREE;
return rc;
}
@@ -6302,22 +6306,24 @@ static int32_t tmem_setop_from_string(char *set_name)
int libxl_tmem_set(libxl_ctx *ctx, uint32_t domid, char* name, uint32_t set)
{
- int rc;
+ int r, rc;
int32_t subop = tmem_setop_from_string(name);
GC_INIT(ctx);
if (subop == -1) {
LOGEV(ERROR, -1, "Invalid set, valid sets are <weight|cap|compress>");
- GC_FREE;
- return ERROR_INVAL;
+ rc = ERROR_INVAL;
+ goto out;
}
- rc = xc_tmem_control(ctx->xch, -1, subop, domid, set, 0, NULL);
- if (rc < 0) {
- LOGEV(ERROR, rc, "Can not set tmem %s", name);
- GC_FREE;
- return ERROR_FAIL;
+ r = xc_tmem_control(ctx->xch, -1, subop, domid, set, 0, NULL);
+ if (r < 0) {
+ LOGEV(ERROR, r, "Can not set tmem %s", name);
+ rc = ERROR_FAIL;
+ goto out;
}
+ rc = 0;
+out:
GC_FREE;
return rc;
}
@@ -6325,32 +6331,36 @@ int libxl_tmem_set(libxl_ctx *ctx, uint32_t domid, char* name, uint32_t set)
int libxl_tmem_shared_auth(libxl_ctx *ctx, uint32_t domid,
char* uuid, int auth)
{
- int rc;
+ int r, rc;
GC_INIT(ctx);
- rc = xc_tmem_auth(ctx->xch, domid, uuid, auth);
- if (rc < 0) {
- LOGEV(ERROR, rc, "Can not set tmem shared auth");
- GC_FREE;
- return ERROR_FAIL;
+ r = xc_tmem_auth(ctx->xch, domid, uuid, auth);
+ if (r < 0) {
+ LOGEV(ERROR, r, "Can not set tmem shared auth");
+ rc = ERROR_FAIL;
+ goto out;
}
+ rc = 0;
+out:
GC_FREE;
return rc;
}
int libxl_tmem_freeable(libxl_ctx *ctx)
{
- int rc;
+ int r, rc;
GC_INIT(ctx);
- rc = xc_tmem_control(ctx->xch, -1, XEN_SYSCTL_TMEM_OP_QUERY_FREEABLE_MB, -1, 0, 0, 0);
- if (rc < 0) {
- LOGEV(ERROR, rc, "Can not get tmem freeable memory");
- GC_FREE;
- return ERROR_FAIL;
+ r = xc_tmem_control(ctx->xch, -1, XEN_SYSCTL_TMEM_OP_QUERY_FREEABLE_MB, -1, 0, 0, 0);
+ if (r < 0) {
+ LOGEV(ERROR, r, "Can not get tmem freeable memory");
+ rc = ERROR_FAIL;
+ goto out;
}
+ rc = 0;
+out:
GC_FREE;
return rc;
}
In accordance with CODING_SYTLE: - Use 'r' for return values to functions whose return values are a different error space (like xc_tmem_control, xc_tmem_auth) Signed-off-by: Paulina Szubarczyk <paulinaszubarczyk@gmail.com> --- Changed since v1: * Added the error cleanup path 'out'. * Replaced return with set-and-goto statements. --- tools/libxl/libxl.c | 82 ++++++++++++++++++++++++++++++----------------------- 1 file changed, 46 insertions(+), 36 deletions(-)