diff options
author | Anthony PERARD <anthony.perard@citrix.com> | 2014-01-10 15:56:33 +0000 |
---|---|---|
committer | Stefano Stabellini <stefano.stabellini@eu.citrix.com> | 2014-01-17 15:29:33 +0000 |
commit | 794798e36eda77802ce7cc7d7d6b1c65751e8a76 (patch) | |
tree | e164f8ee4eeb6af337a841ba4a467875f6d094e1 /hw/xen | |
parent | fc33b9004c49f21f8188df5c4cd079a9a3d08de8 (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>
Diffstat (limited to 'hw/xen')
-rw-r--r-- | hw/xen/xen_pt.c | 4 |
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); |