On Fri, Jun 05, 2009 at 01:23:55PM +0300, Michael S. Tsirkin wrote: > Make it possible to resize PCI regions. This will be used by virtio > with MSI-X, where the region size depends on whether MSI-X is enabled, > and can change across load/save. > > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx> > --- > hw/pci.c | 54 ++++++++++++++++++++++++++++++++++++------------------ > hw/pci.h | 3 +++ > 2 files changed, 39 insertions(+), 18 deletions(-) > > diff --git a/hw/pci.c b/hw/pci.c > index ed011b5..042a216 100644 > --- a/hw/pci.c > +++ b/hw/pci.c > @@ -392,6 +392,41 @@ void pci_register_io_region(PCIDevice *pci_dev, int region_num, > *(uint32_t *)(pci_dev->wmask + addr) = cpu_to_le32(wmask); > } > > +static void pci_unmap_region(PCIDevice *d, PCIIORegion *r) > +{ > + if (r->addr == -1) > + return; > + if (r->type & PCI_ADDRESS_SPACE_IO) { > + int class; > + /* NOTE: specific hack for IDE in PC case: > + only one byte must be mapped. */ > + class = pci_get_word(d->config + PCI_CLASS_DEVICE); > + if (class == 0x0101 && r->size == 4) { > + isa_unassign_ioport(r->addr + 2, 1); > + } else { > + isa_unassign_ioport(r->addr, r->size); > + } > + } else { > + cpu_register_physical_memory(pci_to_cpu_addr(r->addr), > + r->size, > + IO_MEM_UNASSIGNED); > + qemu_unregister_coalesced_mmio(r->addr, r->size); > + } > +} > + this is a good cleanup... > +void pci_resize_io_region(PCIDevice *pci_dev, int region_num, > + uint32_t size) > +{ > + > + PCIIORegion *r = &pci_dev->io_regions[region_num]; > + if (r->size == size) > + return; > + r->size = size; > + pci_unmap_region(pci_dev, r); > + r->addr = -1; > + pci_update_mappings(pci_dev); > +} > + but the only user of this one seem to be commented out, and later removed. Why is this needed? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html