Re: [PATCH RFC 01/12] vhost-vdpa: add support for vDPA blk devices

Stefano Garzarella
2020-11-17T15:05:36Z

On Tue, Nov 17, 2020 at 10:57:09AM +0000, Stefan Hajnoczi wrote:
>On Fri, Nov 13, 2020 at 02:47:01PM +0100, Stefano Garzarella wrote:
>> diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c
>> index 2754f3069738..fb0411594963 100644
>> --- a/drivers/vhost/vdpa.c
>> +++ b/drivers/vhost/vdpa.c
>> @@ -22,6 +22,7 @@
>> #include <linux/nospec.h>
>> #include <linux/vhost.h>
>> #include <linux/virtio_net.h>
>> +#include <linux/virtio_blk.h>
>>
>> #include "vhost.h"
>>
>> @@ -194,6 +195,9 @@ static int vhost_vdpa_config_validate(struct vhost_vdpa *v,
>> case VIRTIO_ID_NET:
>> size = sizeof(struct virtio_net_config);
>> break;
>> + case VIRTIO_ID_BLOCK:
>> + size = sizeof(struct virtio_blk_config);
>> + break;
>> }
>>
>> if (c->len == 0)
>
>Can vdpa_config_ops->get/set_config() handle the size check instead of
>hardcoding device-specific knowledge into drivers/vhost/vdpa.c?

I agree that this should be better. For example we already check if the
buffer is large enough in the simulator callbacks, we only need to
return an error in case it is not true.

@Jason, do you think it's okay to add a return value to
vdpa_config_ops->get/set_config() to handle the size check?

Thanks,
Stefano