mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
hw/virtio: fix Link Control Register for PCI Express virtio devices
Make several Link Control Register flags writable to conform with the PCI Express spec. Signed-off-by: Marcel Apfelbaum <marcel@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
c2cabb3422
commit
d584f1b9ca
5 changed files with 33 additions and 0 deletions
|
@ -1824,6 +1824,11 @@ static void virtio_pci_realize(PCIDevice *pci_dev, Error **errp)
|
|||
pcie_cap_deverr_init(pci_dev);
|
||||
}
|
||||
|
||||
if (proxy->flags & VIRTIO_PCI_FLAG_INIT_LNKCTL) {
|
||||
/* Init Link Control Register */
|
||||
pcie_cap_lnkctl_init(pci_dev);
|
||||
}
|
||||
|
||||
if (proxy->flags & VIRTIO_PCI_FLAG_ATS) {
|
||||
pcie_ats_init(pci_dev, 256);
|
||||
}
|
||||
|
@ -1871,6 +1876,7 @@ static void virtio_pci_reset(DeviceState *qdev)
|
|||
|
||||
if (pci_is_express(dev)) {
|
||||
pcie_cap_deverr_reset(dev);
|
||||
pcie_cap_lnkctl_reset(dev);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1894,6 +1900,8 @@ static Property virtio_pci_properties[] = {
|
|||
VIRTIO_PCI_FLAG_ATS_BIT, false),
|
||||
DEFINE_PROP_BIT("x-pcie-deverr-init", VirtIOPCIProxy, flags,
|
||||
VIRTIO_PCI_FLAG_INIT_DEVERR_BIT, true),
|
||||
DEFINE_PROP_BIT("x-pcie-lnkctl-init", VirtIOPCIProxy, flags,
|
||||
VIRTIO_PCI_FLAG_INIT_LNKCTL_BIT, true),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue