提交 c89a6e78 编写于 作者: J Jim Fehlig

libxl: use init and dispose functions with libxl_physinfo

The typical pattern when calling libxl functions that populate a
structure is

  libxl_foo foo;
  libxl_foo_init(&foo);
  libxl_get_foo(ctx, &foo);
  ...
  libxl_foo_dispose(&foo);

Fix several instances of libxl_physinfo missing the init and
dispose calls.
Signed-off-by: NJim Fehlig <jfehlig@suse.com>
上级 ff225538
......@@ -211,27 +211,33 @@ libxlCapsInitHost(libxl_ctx *ctx, virCapsPtr caps)
const libxl_version_info *ver_info;
enum libxlHwcapVersion version;
libxl_physinfo phy_info;
int ret = -1;
libxl_physinfo_init(&phy_info);
if (libxl_get_physinfo(ctx, &phy_info) != 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to get node physical info from libxenlight"));
return -1;
goto cleanup;
}
if ((ver_info = libxl_get_version_info(ctx)) == NULL) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("Failed to get version info from libxenlight"));
return -1;
goto cleanup;
}
version = (ver_info->xen_version_minor >= 7);
if (libxlCapsInitCPU(caps, &phy_info, version) < 0)
return -1;
goto cleanup;
if (virCapabilitiesSetNetPrefix(caps, LIBXL_GENERATED_PREFIX_XEN) < 0)
return -1;
goto cleanup;
return 0;
ret = 0;
cleanup:
libxl_physinfo_dispose(&phy_info);
return ret;
}
static int
......
......@@ -1943,6 +1943,7 @@ libxlDriverNodeGetInfo(libxlDriverPrivatePtr driver, virNodeInfoPtr info)
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
int ret = -1;
libxl_physinfo_init(&phy_info);
if (libxl_get_physinfo(cfg->ctx, &phy_info)) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("libxl_get_physinfo_info failed"));
......@@ -1967,6 +1968,7 @@ libxlDriverNodeGetInfo(libxlDriverPrivatePtr driver, virNodeInfoPtr info)
ret = 0;
cleanup:
libxl_physinfo_dispose(&phy_info);
virObjectUnref(cfg);
return ret;
}
......
......@@ -4283,6 +4283,7 @@ libxlNodeGetFreeMemory(virConnectPtr conn)
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
unsigned long long ret = 0;
libxl_physinfo_init(&phy_info);
if (virNodeGetFreeMemoryEnsureACL(conn) < 0)
goto cleanup;
......@@ -4295,6 +4296,7 @@ libxlNodeGetFreeMemory(virConnectPtr conn)
ret = phy_info.free_pages * cfg->verInfo->pagesize;
cleanup:
libxl_physinfo_dispose(&phy_info);
virObjectUnref(cfg);
return ret;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册