um: virt-pci: set device ready in probe()
Call virtio_device_ready() to make this driver work after commit b4ec69d7e09 ("virtio: harden vring IRQ"), since the driver uses the virtqueues in the probe function. (The virtio core sets the device ready when probe returns.) Fixes:8b4ec69d7e
("virtio: harden vring IRQ") Fixes:68f5d3f3b6
("um: add PCI over virtio emulation driver") Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com> Message-Id: <20220610151203.3492541-1-vincent.whitchurch@axis.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Tested-by: Johannes Berg <johannes@sipsolutions.net>
This commit is contained in:
parent
00d1f54647
commit
eacea84459
|
@ -544,6 +544,8 @@ static int um_pci_init_vqs(struct um_pci_device *dev)
|
|||
dev->cmd_vq = vqs[0];
|
||||
dev->irq_vq = vqs[1];
|
||||
|
||||
virtio_device_ready(dev->vdev);
|
||||
|
||||
for (i = 0; i < NUM_IRQ_MSGS; i++) {
|
||||
void *msg = kzalloc(MAX_IRQ_MSG_SIZE, GFP_KERNEL);
|
||||
|
||||
|
@ -587,7 +589,7 @@ static int um_pci_virtio_probe(struct virtio_device *vdev)
|
|||
dev->irq = irq_alloc_desc(numa_node_id());
|
||||
if (dev->irq < 0) {
|
||||
err = dev->irq;
|
||||
goto error;
|
||||
goto err_reset;
|
||||
}
|
||||
um_pci_devices[free].dev = dev;
|
||||
vdev->priv = dev;
|
||||
|
@ -604,6 +606,9 @@ static int um_pci_virtio_probe(struct virtio_device *vdev)
|
|||
|
||||
um_pci_rescan();
|
||||
return 0;
|
||||
err_reset:
|
||||
virtio_reset_device(vdev);
|
||||
vdev->config->del_vqs(vdev);
|
||||
error:
|
||||
mutex_unlock(&um_pci_mtx);
|
||||
kfree(dev);
|
||||
|
|
Loading…
Reference in New Issue