On 11/08/2010 02:31 PM, Matthias Bolte wrote:
xenHypervisorInit is called from xenRegister and detects the
sys_interface_version. As Andy figured out correctly, the xencapstest
calls xenHypervisorMakeCapabilitiesInternal with conn == NULL.
xenHypervisorMakeCapabilitiesInternal then calls
xenDaemonNodeGetTopology with conn == NULL if sys_interface_version >=
SYS_IFACE_MIN_VERS_NUMA holds. This is true when you have Xen
installed, otherwise sys_interface_version is -1. Therefore this test
will fail when ypu have recent Xen installed.
diff --git a/src/xen/xen_hypervisor.c b/src/xen/xen_hypervisor.c
index c5cc880..95b3ca2 100644
--- a/src/xen/xen_hypervisor.c
+++ b/src/xen/xen_hypervisor.c
@@ -2244,8 +2244,7 @@ xenHypervisorBuildCapabilities(virConnectPtr conn,
"xenmigr") < 0)
goto no_memory;
-
- if (sys_interface_version >= SYS_IFACE_MIN_VERS_NUMA) {
+ if (sys_interface_version >= SYS_IFACE_MIN_VERS_NUMA && conn != NULL) {
if (xenDaemonNodeGetTopology(conn, caps) != 0) {
virCapabilitiesFree(caps);
return NULL;
ACK if you'd like to turn that into a formal commit.
--
Eric Blake eblake(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org