xen-platform: Ensure xen is enabled when initializing
authorEduardo Habkost <ehabkost@redhat.com>
Mon, 28 Sep 2015 20:01:24 +0000 (17:01 -0300)
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>
Mon, 19 Oct 2015 10:16:01 +0000 (10:16 +0000)
The xen-platform code crashes on reset if the xen backend is not
initialized, because it calls xc_hvm_set_mem_type(). Ensure xen-platform
won't be created without initializing the xen backend.

The assert can't be triggered by the user because the device is not
hotpluggable, and the only code creating it (at pc_xen_hvm_init())
already checks xen_enabled().

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
hw/i386/xen/xen_platform.c

index ee45f03..8682c42 100644 (file)
@@ -387,6 +387,9 @@ static int xen_platform_initfn(PCIDevice *dev)
     PCIXenPlatformState *d = XEN_PLATFORM(dev);
     uint8_t *pci_conf;
 
+    /* Device will crash on reset if xen is not initialized */
+    assert(xen_enabled());
+
     pci_conf = dev->config;
 
     pci_set_word(pci_conf + PCI_COMMAND, PCI_COMMAND_IO | PCI_COMMAND_MEMORY);