aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony PERARD <anthony.perard@citrix.com>2014-01-10 15:56:33 +0000
committerStefano Stabellini <stefano.stabellini@eu.citrix.com>2014-01-17 15:29:33 +0000
commit794798e36eda77802ce7cc7d7d6b1c65751e8a76 (patch)
treee164f8ee4eeb6af337a841ba4a467875f6d094e1
parentfc33b9004c49f21f8188df5c4cd079a9a3d08de8 (diff)
xen_pt: Fix passthrough of device with ROM.
QEMU does not need and should not allocate memory for the ROM of a passthrough PCI device. So this patch initialize the particular region like any other PCI BAR of a passthrough device. When a guest will access the ROM, Xen will take care of the IO, QEMU will not be involved in it. Xen set a limit of memory available for each guest, allocating memory for a ROM can hit this limit. Signed-off-by: Anthony PERARD <anthony.perard@citrix.com> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com> Reported-and-Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-rw-r--r--hw/xen/xen_pt.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/hw/xen/xen_pt.c b/hw/xen/xen_pt.c
index eee43541a4..be4220b415 100644
--- a/hw/xen/xen_pt.c
+++ b/hw/xen/xen_pt.c
@@ -440,8 +440,8 @@ static int xen_pt_register_regions(XenPCIPassthroughState *s)
s->bases[PCI_ROM_SLOT].access.maddr = d->rom.base_addr;
- memory_region_init_rom_device(&s->rom, OBJECT(s), NULL, NULL,
- "xen-pci-pt-rom", d->rom.size);
+ memory_region_init_io(&s->rom, OBJECT(s), &ops, &s->dev,
+ "xen-pci-pt-rom", d->rom.size);
pci_register_bar(&s->dev, PCI_ROM_SLOT, PCI_BASE_ADDRESS_MEM_PREFETCH,
&s->rom);