104 lines
3.2 KiB
Diff
104 lines
3.2 KiB
Diff
|
commit c89a6e7878e630718cce0af940e9c070c132ce30
|
||
|
Author: Jim Fehlig <jfehlig@suse.com>
|
||
|
Date: Tue Jan 31 20:07:30 2017 -0700
|
||
|
|
||
|
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: Jim Fehlig <jfehlig@suse.com>
|
||
|
|
||
|
Index: libvirt-3.0.0/src/libxl/libxl_capabilities.c
|
||
|
===================================================================
|
||
|
--- libvirt-3.0.0.orig/src/libxl/libxl_capabilities.c
|
||
|
+++ libvirt-3.0.0/src/libxl/libxl_capabilities.c
|
||
|
@@ -211,27 +211,33 @@ libxlCapsInitHost(libxl_ctx *ctx, virCap
|
||
|
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
|
||
|
Index: libvirt-3.0.0/src/libxl/libxl_conf.c
|
||
|
===================================================================
|
||
|
--- libvirt-3.0.0.orig/src/libxl/libxl_conf.c
|
||
|
+++ libvirt-3.0.0/src/libxl/libxl_conf.c
|
||
|
@@ -1969,6 +1969,7 @@ libxlDriverNodeGetInfo(libxlDriverPrivat
|
||
|
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"));
|
||
|
@@ -1993,6 +1994,7 @@ libxlDriverNodeGetInfo(libxlDriverPrivat
|
||
|
ret = 0;
|
||
|
|
||
|
cleanup:
|
||
|
+ libxl_physinfo_dispose(&phy_info);
|
||
|
virObjectUnref(cfg);
|
||
|
return ret;
|
||
|
}
|
||
|
Index: libvirt-3.0.0/src/libxl/libxl_driver.c
|
||
|
===================================================================
|
||
|
--- libvirt-3.0.0.orig/src/libxl/libxl_driver.c
|
||
|
+++ libvirt-3.0.0/src/libxl/libxl_driver.c
|
||
|
@@ -4284,6 +4284,7 @@ libxlNodeGetFreeMemory(virConnectPtr con
|
||
|
libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
|
||
|
unsigned long long ret = 0;
|
||
|
|
||
|
+ libxl_physinfo_init(&phy_info);
|
||
|
if (virNodeGetFreeMemoryEnsureACL(conn) < 0)
|
||
|
goto cleanup;
|
||
|
|
||
|
@@ -4296,6 +4297,7 @@ libxlNodeGetFreeMemory(virConnectPtr con
|
||
|
ret = phy_info.free_pages * cfg->verInfo->pagesize;
|
||
|
|
||
|
cleanup:
|
||
|
+ libxl_physinfo_dispose(&phy_info);
|
||
|
virObjectUnref(cfg);
|
||
|
return ret;
|
||
|
}
|