[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH RFC v6 19/20] virtio-blk: revision specific feat
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH RFC v6 19/20] virtio-blk: revision specific feature bits |
Date: |
Sun, 28 Dec 2014 12:24:46 +0200 |
On Thu, Dec 11, 2014 at 02:25:21PM +0100, Cornelia Huck wrote:
> Wire up virtio-blk to provide different feature bit sets depending
> on whether legacy or v1.0 has been requested.
>
> Note that VERSION_1 is still disabled due to missing ANY_LAYOUT support.
>
> Signed-off-by: Cornelia Huck <address@hidden>
So we need some way for devices to tell transports
not to negotiate rev 1.
Does clearing VERSION_1 have this effect?
> ---
> hw/block/virtio-blk.c | 19 +++++++++++++++++++
> 1 file changed, 19 insertions(+)
>
> diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
> index 9cfae66..fdc236a 100644
> --- a/hw/block/virtio-blk.c
> +++ b/hw/block/virtio-blk.c
> @@ -587,6 +587,24 @@ static uint64_t virtio_blk_get_features(VirtIODevice
> *vdev, uint64_t features)
> return features;
> }
>
> +static uint64_t virtio_blk_get_features_rev(VirtIODevice *vdev,
> + uint64_t features,
> + unsigned int revision)
> +{
> + if (revision == 0) {
> + /* legacy */
> + virtio_clear_feature(&features, VIRTIO_F_VERSION_1);
> + return virtio_blk_get_features(vdev, features);
> + }
> + /* virtio 1.0 or later */
> + virtio_clear_feature(&features, VIRTIO_BLK_F_SCSI);
> + virtio_clear_feature(&features, VIRTIO_BLK_F_CONFIG_WCE);
> + virtio_clear_feature(&features, VIRTIO_BLK_F_WCE);
> + /* we're still missing ANY_LAYOUT */
> + /* virtio_add_feature(&features, VIRTIO_F_VERSION_1); */
> + return features;
> +}
> +
> static void virtio_blk_set_status(VirtIODevice *vdev, uint8_t status)
> {
> VirtIOBlock *s = VIRTIO_BLK(vdev);
> @@ -821,6 +839,7 @@ static void virtio_blk_class_init(ObjectClass *klass,
> void *data)
> vdc->get_config = virtio_blk_update_config;
> vdc->set_config = virtio_blk_set_config;
> vdc->get_features = virtio_blk_get_features;
> + vdc->get_features_rev = virtio_blk_get_features_rev;
> vdc->set_status = virtio_blk_set_status;
> vdc->reset = virtio_blk_reset;
> vdc->save = virtio_blk_save_device;
> --
> 1.7.9.5
- [Qemu-devel] [PATCH RFC v6 11/20] s390x/virtio-ccw: support virtio-1 set_vq format, (continued)
- [Qemu-devel] [PATCH RFC v6 11/20] s390x/virtio-ccw: support virtio-1 set_vq format, Cornelia Huck, 2014/12/11
- [Qemu-devel] [PATCH RFC v6 15/20] virtio-net: no writeable mac for virtio-1, Cornelia Huck, 2014/12/11
- [Qemu-devel] [PATCH RFC v6 18/20] virtio: support revision-specific features, Cornelia Huck, 2014/12/11
- [Qemu-devel] [PATCH RFC v6 16/20] virtio-net: support longer header, Cornelia Huck, 2014/12/11
- [Qemu-devel] [PATCH RFC v6 20/20] vhost: 64 bit features, Cornelia Huck, 2014/12/11
- [Qemu-devel] [PATCH RFC v6 17/20] virtio-net: enable virtio 1.0, Cornelia Huck, 2014/12/11
- [Qemu-devel] [PATCH RFC v6 19/20] virtio-blk: revision specific feature bits, Cornelia Huck, 2014/12/11
- Re: [Qemu-devel] [PATCH RFC v6 19/20] virtio-blk: revision specific feature bits,
Michael S. Tsirkin <=