mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-02 15:23:53 -06:00
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:
parent
92fd453c67
commit
dd56040d29
7 changed files with 23 additions and 73 deletions
|
@ -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)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue