Message ID | 1443470484-5389-3-git-send-email-ehabkost@redhat.com |
---|---|
State | New |
Headers | show |
On Mon, 28 Sep 2015, Eduardo Habkost wrote: > 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> > hw/i386/xen/xen_platform.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c > index ee45f03..8682c42 100644 > --- a/hw/i386/xen/xen_platform.c > +++ b/hw/i386/xen/xen_platform.c > @@ -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); > -- > 2.1.0 >
diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c index ee45f03..8682c42 100644 --- a/hw/i386/xen/xen_platform.c +++ b/hw/i386/xen/xen_platform.c @@ -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);
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> --- hw/i386/xen/xen_platform.c | 3 +++ 1 file changed, 3 insertions(+)