From: David Woodhouse <dwmw@amazon.co.uk>
Also check for XEN_ATTACH mode in xen_init()
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
---
accel/xen/xen-all.c | 4 ++++
include/hw/xen/xen.h | 5 +++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/accel/xen/xen-all.c b/accel/xen/xen-all.c
index 69aa7d018b..109d2e84bc 100644
--- a/accel/xen/xen-all.c
+++ b/accel/xen/xen-all.c
@@ -158,6 +158,10 @@ static int xen_init(MachineState *ms)
{
MachineClass *mc = MACHINE_GET_CLASS(ms);
+ if (xen_mode != XEN_ATTACH) {
+ xen_pv_printf(NULL, 0, "xen requires --xen-attach mode\n");
+ return -1;
+ }
xen_xc = xc_interface_open(0, 0, 0);
if (xen_xc == NULL) {
xen_pv_printf(NULL, 0, "can't open xen interface\n");
diff --git a/include/hw/xen/xen.h b/include/hw/xen/xen.h
index afdf9c436a..82347e76a4 100644
--- a/include/hw/xen/xen.h
+++ b/include/hw/xen/xen.h
@@ -12,8 +12,9 @@
/* xen-machine.c */
enum xen_mode {
- XEN_EMULATE = 0, // xen emulation, using xenner (default)
- XEN_ATTACH // attach to xen domain created by libxl
+ XEN_DISABLED = 0, // xen support disabled (default)
+ XEN_ATTACH, // attach to xen domain created by libxl
+ XEN_EMULATE,
};
extern uint32_t xen_domid;