virtio-pci: get config on init
PATCH 1/1 virtio-pci: get config on init
We originally did get config on map, so that following write accesses are done on an updated config. New memory API doesn't give us a callback
on map, and arguably, devices don't know when cpu really can access there. So updating on init seems cleaner.
Signed-off-by Michael S. Tsirkin <[email protected]>
---
OK, this should go on Avi's branch and the memory API can go on top.
hw/virtio-pci.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-)
hw/virtio-pci.c +4 -3
@@ -507,9 +507,6 @@ static void virtio_map(PCIDevice *pci_dev, int region_num,register_ioport_read (addr, config_len,1 , virtio_pci_config_readb, proxy);register_ioport_read (addr, config_len,2 , virtio_pci_config_readw, proxy);register_ioport_read (addr, config_len,4 , virtio_pci_config_readl, proxy); - -if (vdev->config_len) - vdev->get_config (vdev, vdev->config); } static void virtio_write_config(PCIDevice *pci_dev, uint32_t address,
@@ -689,6 +686,10 @@ void virtio_init_pci(VirtIOPCIProxy *proxy, VirtIODevice *vdev) proxy->host_features |=0x1 <<VIRTIO_F_NOTIFY_ON_EMPTY ; proxy->host_features |=0x1 <<VIRTIO_F_BAD_FEATURE ; proxy->host_features = vdev->get_features (vdev, proxy->host_features); + +if (vdev->config_len) { + vdev->get_config (vdev, vdev->config); + } }static int virtio_blk_init_pci (PCIDevice *pci_dev)
Signature · 1 line
1.7.5.53.gc233e