Commit 1faea417 authored by Dariusz Stojaczyk's avatar Dariusz Stojaczyk Committed by Jim Harris
Browse files

bdev_virtio: destruct all vdevs on shutdown



This patch also resets each device
before destructing it. This is urgently
required for virtio_pci, as it notifies
the QEMU about our shutdown.

This patch fixes running subsequent
bdev_virtio instances in PCI mode within
the same vhost.

Change-Id: I2569251362f2aaf058f6e44f068b280244bd38c1
Signed-off-by: default avatarDariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/381201


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent 6368d6c0
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -682,6 +682,11 @@ out:

static void bdev_virtio_finish(void)
{
	struct virtio_dev *vdev, *next;

	TAILQ_FOREACH_SAFE(vdev, &g_virtio_driver.attached_ctrlrs, tailq, next) {
		virtio_dev_free(vdev);
	}
}

SPDK_LOG_REGISTER_TRACE_FLAG("virtio", SPDK_TRACE_VIRTIO)
+1 −0
Original line number Diff line number Diff line
@@ -304,6 +304,7 @@ virtio_dev_free(struct virtio_dev *dev)
{
	uint32_t vdev_id = dev->id;

	vtpci_reset(dev);
	virtio_free_queues(dev);
	vtpci_ops(dev)->free_vdev(dev);
	vtpci_deinit(vdev_id);