search for: virtio_blk_f_get_id

Displaying 4 results from an estimated 4 matches for "virtio_blk_f_get_id".

2009 Sep 29
0
[PATCH 3/4] virtio_blk: implement a request-based ID command, VIRTIO_BLK_T_GET_ID
...IO_BLK_ID_BYTES, GFP_KERNEL); if (!opaque) - goto out; + return -ENOMEM; - err = virtio_config_buf(vblk->vdev, VIRTIO_BLK_F_IDENTIFY, - offsetof(struct virtio_blk_config_deprecated, identify), opaque, - VIRTIO_BLK_ID_BYTES); + /* The modern way. */ + if (virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_GET_ID)) + err = virtblk_get_id(vblk, opaque); + /* The deprecated way. */ + else if (virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_IDENTIFY)) + err = virtblk_identify_deprecated(vblk, opaque); + /* No way. */ + else + err = -ENOTTY; - if (err) - goto out_kfree; + if (!err) + if (copy_to_user(argp...
2009 Sep 29
0
[PATCH 3/4] virtio_blk: implement a request-based ID command, VIRTIO_BLK_T_GET_ID
...IO_BLK_ID_BYTES, GFP_KERNEL); if (!opaque) - goto out; + return -ENOMEM; - err = virtio_config_buf(vblk->vdev, VIRTIO_BLK_F_IDENTIFY, - offsetof(struct virtio_blk_config_deprecated, identify), opaque, - VIRTIO_BLK_ID_BYTES); + /* The modern way. */ + if (virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_GET_ID)) + err = virtblk_get_id(vblk, opaque); + /* The deprecated way. */ + else if (virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_IDENTIFY)) + err = virtblk_identify_deprecated(vblk, opaque); + /* No way. */ + else + err = -ENOTTY; - if (err) - goto out_kfree; + if (!err) + if (copy_to_user(argp...
2009 Sep 29
0
[PATCH 4/4] lguest: GET_ID "support"
...nds unsupported\n"); *in = VIRTIO_BLK_S_UNSUPP; wlen = sizeof(*in); @@ -1751,6 +1755,9 @@ static void setup_block_file(const char add_feature(dev, VIRTIO_BLK_F_SEG_MAX); conf.seg_max = cpu_to_le32(VIRTQUEUE_NUM - 2); + /* We have GET_ID, at least for testing! */ + add_feature(dev, VIRTIO_BLK_F_GET_ID); + /* * We only have 8 bits of configuration space for each device. But a * new feature for virtio_blk added a 1k 'identify' field to struct
2009 Sep 29
0
[PATCH 4/4] lguest: GET_ID "support"
...nds unsupported\n"); *in = VIRTIO_BLK_S_UNSUPP; wlen = sizeof(*in); @@ -1751,6 +1755,9 @@ static void setup_block_file(const char add_feature(dev, VIRTIO_BLK_F_SEG_MAX); conf.seg_max = cpu_to_le32(VIRTQUEUE_NUM - 2); + /* We have GET_ID, at least for testing! */ + add_feature(dev, VIRTIO_BLK_F_GET_ID); + /* * We only have 8 bits of configuration space for each device. But a * new feature for virtio_blk added a 1k 'identify' field to struct