On 07/13/2015 03:46 PM, Michael S. Tsirkin wrote:
> On Mon, Jul 13, 2015 at 01:46:48PM +0800, Jason Wang wrote:
>> VIRTIO_BLK_F_SCSI was no longer supported in 1.0. So disable it.
>>
>> Cc: Stefan Hajnoczi <[email protected]>
>> Cc: Kevin Wolf <[email protected]>
>> Cc: [email protected]
>> Signed-off-by: Jason Wang <[email protected]>
> Interesting, I noticed we have a field scsi - see
> commit 1ba1f2e319afdcb485963cd3f426fdffd1b725f2
> Author: Paolo Bonzini <[email protected]>
> Date: Fri Dec 23 15:39:03 2011 +0100
>
> virtio-blk: refuse SG_IO requests with scsi=off
>
> but it doesn't seem to be propagated to guest features in
> any way.
>
> Maybe we should fix that, making that flag AutoOnOff?
Looks ok but auto may need some compat work since default is true.
> Then, if user explicitly requested scsi=on with a modern
> interface then we can error out cleanly.
>
> Given scsi flag is currently ignored, I think
> this can be a patch on top.
Looks like virtio_blk_handle_scsi_req() check this:
if (!blk->conf.scsi) {
status = VIRTIO_BLK_S_UNSUPP;
goto fail;
}
>
>> ---
>> hw/block/virtio-blk.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c
>> index 6aefda4..f30ad25 100644
>> --- a/hw/block/virtio-blk.c
>> +++ b/hw/block/virtio-blk.c
>> @@ -730,7 +730,8 @@ static uint64_t virtio_blk_get_features(VirtIODevice
>> *vdev, uint64_t features)
>> virtio_add_feature(&features, VIRTIO_BLK_F_GEOMETRY);
>> virtio_add_feature(&features, VIRTIO_BLK_F_TOPOLOGY);
>> virtio_add_feature(&features, VIRTIO_BLK_F_BLK_SIZE);
>> - virtio_add_feature(&features, VIRTIO_BLK_F_SCSI);
>> + if (!__virtio_has_feature(features, VIRTIO_F_VERSION_1))
>> + virtio_add_feature(&features, VIRTIO_BLK_F_SCSI);
>>
>> if (s->conf.config_wce) {
>> virtio_add_feature(&features, VIRTIO_BLK_F_CONFIG_WCE);
>> --
>> 2.1.4