Revert "hw: report invalid disable-legacy|modern usage for virtio-1-only devs"

This reverts commit f2784eed30
since that accidentally removes the PCIe capabilities from virtio
devices because virtio_pci_dc_realize is called before the new 'mode'
flag is set.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Message-Id: <20190729162903.4489-3-dgilbert@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Cornelia Huck <cohuck@redhat.com>
This commit is contained in:
Dr. David Alan Gilbert 2019-07-29 17:29:03 +01:00 committed by Michael S. Tsirkin
parent 92fd453c67
commit dd56040d29
7 changed files with 23 additions and 73 deletions

View file

@ -1723,22 +1723,16 @@ static void virtio_pci_realize(PCIDevice *pci_dev, Error **errp)
/* PCI BAR regions must be powers of 2 */
pow2ceil(proxy->notify.offset + proxy->notify.size));
if ((proxy->disable_legacy == ON_OFF_AUTO_ON) ||
((proxy->disable_legacy == ON_OFF_AUTO_AUTO) && pcie_port)) {
if (proxy->disable_modern) {
error_setg(errp, "device cannot work as neither modern nor "
"legacy mode is enabled");
error_append_hint(errp, "Set either disable-modern or "
"disable-legacy to off\n");
return;
}
proxy->mode = VIRTIO_PCI_MODE_MODERN;
} else {
if (proxy->disable_modern) {
proxy->mode = VIRTIO_PCI_MODE_LEGACY;
} else {
proxy->mode = VIRTIO_PCI_MODE_TRANSITIONAL;
}
if (proxy->disable_legacy == ON_OFF_AUTO_AUTO) {
proxy->disable_legacy = pcie_port ? ON_OFF_AUTO_ON : ON_OFF_AUTO_OFF;
}
if (!virtio_pci_modern(proxy) && !virtio_pci_legacy(proxy)) {
error_setg(errp, "device cannot work as neither modern nor legacy mode"
" is enabled");
error_append_hint(errp, "Set either disable-modern or disable-legacy"
" to off\n");
return;
}
if (pcie_port && pci_is_express(pci_dev)) {