Fix xen driver following changes to make it stateful

Recent work to improve support for loadable driver modules introduced
a regression in the xen driver.  The legacy xen driver is now a
stateful, libvirtd driver but was not being registered when building
without driver modules.

A slight behavior change was also noted in the xen drivers when
built as driver modules.  Previously, explicitly specifying a
connection URI was not necessary, but now

Compiled against library: libvirt 0.10.0
Using library: libvirt 0.10.0
Using API: QEMU 0.10.0
error: failed to get the hypervisor version
error: internal error Cannot find suitable emulator for x86_64

The xen drivers need to be registered before the qemu driver since
the qemu driver will return success with a null connection URI.
This ordering is safe since the xen drivers will decline when not
running the xen kernel.
This commit is contained in:
Jim Fehlig 2012-08-30 12:53:02 -06:00 committed by Daniel Veillard
parent 3044433f29
commit f781e27653
2 changed files with 16 additions and 6 deletions

View File

@ -131,6 +131,10 @@ if WITH_LXC
libvirtd_LDADD += ../src/libvirt_driver_lxc.la
endif
if WITH_XEN
libvirtd_LDADD += ../src/libvirt_driver_xen.la
endif
if WITH_LIBXL
libvirtd_LDADD += ../src/libvirt_driver_libxl.la
endif

View File

@ -66,6 +66,9 @@
# ifdef WITH_LXC
# include "lxc/lxc_driver.h"
# endif
# ifdef WITH_XEN
# include "xen/xen_driver.h"
# endif
# ifdef WITH_LIBXL
# include "libxl/libxl_driver.h"
# endif
@ -382,6 +385,12 @@ static void daemonInitialize(void)
# ifdef WITH_NETCF
virDriverLoadModule("interface");
# endif
# ifdef WITH_XEN
virDriverLoadModule("xen");
# endif
# ifdef WITH_LIBXL
virDriverLoadModule("libxl");
# endif
# ifdef WITH_QEMU
virDriverLoadModule("qemu");
# endif
@ -391,12 +400,6 @@ static void daemonInitialize(void)
# ifdef WITH_UML
virDriverLoadModule("uml");
# endif
# ifdef WITH_XEN
virDriverLoadModule("xen");
# endif
# ifdef WITH_LIBXL
virDriverLoadModule("libxl");
# endif
#else
# ifdef WITH_NETWORK
networkRegister();
@ -416,6 +419,9 @@ static void daemonInitialize(void)
# ifdef WITH_NWFILTER
nwfilterRegister();
# endif
# ifdef WITH_XEN
xenRegister();
# endif
# ifdef WITH_LIBXL
libxlRegister();
# endif