From: Joao Martins <joao.m.martins@oracle.com> Date: Tue, 19 Jun 2018 10:44:46 +0000 (-0400) Subject: xen-platform-pci: allow its creation with XEN_EMULATE mode X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=f540817354a69c4e566ef4b58404e0425764c95d;p=users%2Fdwmw2%2Fqemu.git xen-platform-pci: allow its creation with XEN_EMULATE mode The only thing we need to handle on KVM side is to change the pfn from R/W to R/O. Signed-off-by: Joao Martins <joao.m.martins@oracle.com> --- diff --git a/hw/i386/xen/xen_platform.c b/hw/i386/xen/xen_platform.c index 16afb54fee..a1e8d3d021 100644 --- a/hw/i386/xen/xen_platform.c +++ b/hw/i386/xen/xen_platform.c @@ -228,7 +228,10 @@ static void platform_fixed_ioport_writeb(void *opaque, uint32_t addr, uint32_t v case 0: /* Platform flags */ { hvmmem_type_t mem_type = (val & PFFLAG_ROM_LOCK) ? HVMMEM_ram_ro : HVMMEM_ram_rw; - if (xen_set_mem_type(xen_domid, mem_type, 0xc0, 0x40)) { + if (xen_mode == XEN_EMULATE) { + /* XXX */ + s->flags = val & PFFLAG_ROM_LOCK; + } else if (xen_set_mem_type(xen_domid, mem_type, 0xc0, 0x40)) { DPRINTF("unable to change ro/rw state of ROM memory area!\n"); } else { s->flags = val & PFFLAG_ROM_LOCK; @@ -461,12 +464,6 @@ static void xen_platform_realize(PCIDevice *dev, Error **errp) PCIXenPlatformState *d = XEN_PLATFORM(dev); uint8_t *pci_conf; - /* Device will crash on reset if xen is not initialized */ - if (!xen_enabled()) { - error_setg(errp, "xen-platform device requires the Xen accelerator"); - return; - } - pci_conf = dev->config; pci_set_word(pci_conf + PCI_COMMAND, PCI_COMMAND_IO | PCI_COMMAND_MEMORY);