]> xenbits.xensource.com Git - unikraft/unikraft.git/commitdiff
drivers/virtio/blk: Add basic support for modern virtio
authorMichalis Pappas <michalis@unikraft.io>
Mon, 25 Sep 2023 14:22:15 +0000 (16:22 +0200)
committerRazvan Deaconescu <razvand@unikraft.io>
Fri, 20 Oct 2023 16:35:55 +0000 (19:35 +0300)
This commit adds the minimum set of changes required for modern virtio
support.

Checkpatch-Ignore: LONG_LINE
Signed-off-by: Marc Rittinghaus <marc.rittinghaus@kit.edu>
Signed-off-by: Michalis Pappas <michalis@unikraft.io>
Reviewed-by: Andrei Topala <topala.andrei@gmail.com>
Reviewed-by: Marco Schlumpp <marco@unikraft.io>
Approved-by: Razvan Deaconescu <razvand@unikraft.io>
GitHub-Closes: #1115

drivers/virtio/blk/virtio_blk.c

index df5163459d74dd1a0b64cf976fb0a794c10c6d9a..8060172b16739b0ed0d4a58bc12a454124594483 100644 (file)
@@ -61,6 +61,7 @@
                VIRTIO_FEATURE_SET(features, VIRTIO_BLK_F_MQ);          \
                VIRTIO_FEATURE_SET(features, VIRTIO_BLK_F_SIZE_MAX);    \
                VIRTIO_FEATURE_SET(features, VIRTIO_BLK_F_FLUSH);       \
+               VIRTIO_FEATURE_SET(features, VIRTIO_F_VERSION_1);       \
        } while (0)
 
 static struct uk_alloc *a;
@@ -876,6 +877,10 @@ static int virtio_blkdev_feature_negotiate(struct virtio_blk_device *vbdev)
        vbdev->vdev->features &= host_features;
        virtio_feature_set(vbdev->vdev);
 
+       virtio_dev_status_update(vbdev->vdev, (VIRTIO_CONFIG_STATUS_ACK |
+                                              VIRTIO_CONFIG_STATUS_DRIVER |
+                                              VIRTIO_CONFIG_STATUS_FEATURES_OK));
+
 exit:
        return rc;
 }