On Wed, Jan 23, 2013 at 05:46:13PM -0700, Alex Williamson wrote: > We don't know pre-init time whether the device we're exposing is PCIe > or legacy PCI. We could ask for it to be specified via a device > option, but that seems like too much to ask of the user. Instead we > can assume everything will be PCIe, which makes PCI-core allocate > enough config space. Removing the flag during init leaves the space > allocated, but allows legacy PCI devices to report the real device > config space size to rest of Qemu. > > Signed-off-by: Alex Williamson <alex.williamson@xxxxxxxxxx> It's a bit of a hack but I don't have a better idea. Acked-by: Michael S. Tsirkin <mst@xxxxxxxxxx> > --- > hw/vfio_pci.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/hw/vfio_pci.c b/hw/vfio_pci.c > index c51ae67..66537b7 100644 > --- a/hw/vfio_pci.c > +++ b/hw/vfio_pci.c > @@ -1899,6 +1899,9 @@ static int vfio_get_device(VFIOGroup *group, const char *name, VFIODevice *vdev) > (unsigned long)reg_info.flags); > > vdev->config_size = reg_info.size; > + if (vdev->config_size == PCI_CONFIG_SPACE_SIZE) { > + vdev->pdev.cap_present &= ~QEMU_PCI_CAP_EXPRESS; > + } > vdev->config_offset = reg_info.offset; > > error: > @@ -2121,6 +2124,7 @@ static void vfio_pci_dev_class_init(ObjectClass *klass, void *data) > pdc->exit = vfio_exitfn; > pdc->config_read = vfio_pci_read_config; > pdc->config_write = vfio_pci_write_config; > + pdc->is_express = 1; /* We might be */ > } > > static const TypeInfo vfio_pci_dev_info = { > -- 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