Searched hist:"0560 b0e97df3da43651158c799c6d889f27529c3" (Results 1 – 2 of 2) sorted by relevance
/qemu/include/hw/virtio/ |
H A D | virtio-pci.h | 0560b0e97df3da43651158c799c6d889f27529c3 Wed Dec 02 17:49:07 UTC 2015 Shmulik Ladkani <shmulik.ladkani@ravellosystems.com> virtio-pci: Set the QEMU_PCI_CAP_EXPRESS capability early in its DeviceClass realize method
In 1811e64 'hw/virtio: Add PCIe capability to virtio devices', the QEMU_PCI_CAP_EXPRESS capability was added to virtio's pci_dev, within 'virtio_pci_realize' - the pci device object realization method.
This occurs to late, as 'pci_qdev_realize' (DeviceClass.realize of TYPE_PCI_DEVICE) has already been called, without knowing that the device instance is indeed an "express" instance, thus allocating insufficient pci config space.
As a result, device may crash upon attempt to write to the PCIE config space.
Fix, by arming the QEMU_PCI_CAP_EXPRESS capability early in virtio-pci's own DeviceClass realize method.
This also makes code cleaner, as 'virtio_pci_realize' may now access the 'pci_is_express' predicate when needed.
Signed-off-by: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Tested-by: Marcel Apfelbaum <marcel@redhat.com>
|
/qemu/hw/virtio/ |
H A D | virtio-pci.c | 0560b0e97df3da43651158c799c6d889f27529c3 Wed Dec 02 17:49:07 UTC 2015 Shmulik Ladkani <shmulik.ladkani@ravellosystems.com> virtio-pci: Set the QEMU_PCI_CAP_EXPRESS capability early in its DeviceClass realize method
In 1811e64 'hw/virtio: Add PCIe capability to virtio devices', the QEMU_PCI_CAP_EXPRESS capability was added to virtio's pci_dev, within 'virtio_pci_realize' - the pci device object realization method.
This occurs to late, as 'pci_qdev_realize' (DeviceClass.realize of TYPE_PCI_DEVICE) has already been called, without knowing that the device instance is indeed an "express" instance, thus allocating insufficient pci config space.
As a result, device may crash upon attempt to write to the PCIE config space.
Fix, by arming the QEMU_PCI_CAP_EXPRESS capability early in virtio-pci's own DeviceClass realize method.
This also makes code cleaner, as 'virtio_pci_realize' may now access the 'pci_is_express' predicate when needed.
Signed-off-by: Shmulik Ladkani <shmulik.ladkani@ravellosystems.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Tested-by: Marcel Apfelbaum <marcel@redhat.com>
|