Avoid warning message from libxl driver on non-Xen kernels

The libxl driver reads /proc/xen/capabilities to see if it
is on a Dom0 kernel. If that file does not even exist though,
an error is logged. Check for the file existance before trying
to read its contents to avoid the log message.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrange 2014-03-17 12:14:11 +00:00
parent e8bb1adf3e
commit e23ca83a0d

View File

@ -66,6 +66,8 @@
#define LIBXL_CONFIG_FORMAT_XM "xen-xm" #define LIBXL_CONFIG_FORMAT_XM "xen-xm"
#define LIBXL_CONFIG_FORMAT_SEXPR "xen-sxpr" #define LIBXL_CONFIG_FORMAT_SEXPR "xen-sxpr"
#define HYPERVISOR_CAPABILITIES "/proc/xen/capabilities"
/* Number of Xen scheduler parameters */ /* Number of Xen scheduler parameters */
#define XEN_SCHED_CREDIT_NPARAM 2 #define XEN_SCHED_CREDIT_NPARAM 2
@ -970,12 +972,17 @@ libxlDriverShouldLoad(bool privileged)
return ret; return ret;
} }
if (!virFileExists(HYPERVISOR_CAPABILITIES)) {
VIR_INFO("Disabling driver as " HYPERVISOR_CAPABILITIES
" does not exist");
return false;
}
/* /*
* Don't load if not running on a Xen control domain (dom0). It is not * Don't load if not running on a Xen control domain (dom0). It is not
* sufficient to check for the file to exist as any guest can mount * sufficient to check for the file to exist as any guest can mount
* xenfs to /proc/xen. * xenfs to /proc/xen.
*/ */
status = virFileReadAll("/proc/xen/capabilities", 10, &output); status = virFileReadAll(HYPERVISOR_CAPABILITIES, 10, &output);
if (status >= 0) { if (status >= 0) {
status = strncmp(output, "control_d", 9); status = strncmp(output, "control_d", 9);
} }