|
@@ -109,6 +109,23 @@ struct virtqueue *virtio_find_single_vq(struct virtio_device *vdev,
|
|
|
return vq;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * virtio_device_ready - enable vq use in probe function
|
|
|
+ * @vdev: the device
|
|
|
+ *
|
|
|
+ * Driver must call this to use vqs in the probe function.
|
|
|
+ *
|
|
|
+ * Note: vqs are enabled automatically after probe returns.
|
|
|
+ */
|
|
|
+static inline
|
|
|
+void virtio_device_ready(struct virtio_device *dev)
|
|
|
+{
|
|
|
+ unsigned status = dev->config->get_status(dev);
|
|
|
+
|
|
|
+ BUG_ON(status & VIRTIO_CONFIG_S_DRIVER_OK);
|
|
|
+ dev->config->set_status(dev, status | VIRTIO_CONFIG_S_DRIVER_OK);
|
|
|
+}
|
|
|
+
|
|
|
static inline
|
|
|
const char *virtio_bus_name(struct virtio_device *vdev)
|
|
|
{
|