Avi Kivity wrote:
Rusty Russell wrote:
+
+static void vp_reset(struct virtio_device *vdev)
+{
+    struct virtio_pci_device *vp_dev = to_vp_device(vdev);
+    /* 0 status means a reset. */
+    return iowrite8(0, vp_dev->ioaddr + VIRTIO_PCI_STATUS);
 }

pci has something called FLR for function-level reset. If we use that as the reset mechanism, then reset can be initiated from outside the virtio layer, if the guest OS supports that.

PCI-e has a common reset concept (warm and cold). I've been looking around and I can't seem to find any common reset mechanism for PCI. Is FLR something that is per-device or a standard PCI mechanism? If it's the former, than we've basically implemented FLR using this bit in the config space.

Regards,

Anthony Liguori

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/virtualization

Reply via email to