diff mbox

[v2,1/2] vhost-user-blk: set config ops before vhost-user init

Message ID 20180328192800.7138-2-maxime.coquelin@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Maxime Coquelin March 28, 2018, 7:27 p.m. UTC
As soon as vhost-user init is done, the backend may send
VHOST_USER_SLAVE_CONFIG_CHANGE_MSG, so let's set the
notification callback before it.

Also, it will be used to know whether the device supports
the config feature to advertize it or not.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 hw/block/vhost-user-blk.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Liu, Changpeng March 29, 2018, 12:53 a.m. UTC | #1
> -----Original Message-----
> From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com]
> Sent: Thursday, March 29, 2018 3:28 AM
> To: mst@redhat.com; Liu, Changpeng <changpeng.liu@intel.com>;
> marcandre.lureau@redhat.com; qemu-devel@nongnu.org
> Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
> Subject: [PATCH v2 1/2] vhost-user-blk: set config ops before vhost-user init
> 
> As soon as vhost-user init is done, the backend may send
> VHOST_USER_SLAVE_CONFIG_CHANGE_MSG, so let's set the
> notification callback before it.
> 
> Also, it will be used to know whether the device supports
> the config feature to advertize it or not.
> 
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
>  hw/block/vhost-user-blk.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
> index f840f07dfe..262baca432 100644
> --- a/hw/block/vhost-user-blk.c
> +++ b/hw/block/vhost-user-blk.c
> @@ -259,6 +259,8 @@ static void vhost_user_blk_device_realize(DeviceState
> *dev, Error **errp)
>      s->dev.vq_index = 0;
>      s->dev.backend_features = 0;
> 
> +    vhost_dev_set_config_notifier(&s->dev, &blk_ops);
Please also remove the line "assert(hdev->vhost_ops);" in function vhost_dev_set_config_notifier at vhost.c file.
> +
>      ret = vhost_dev_init(&s->dev, &s->chardev, VHOST_BACKEND_TYPE_USER, 0);
>      if (ret < 0) {
>          error_setg(errp, "vhost-user-blk: vhost initialization failed: %s",
> @@ -277,8 +279,6 @@ static void vhost_user_blk_device_realize(DeviceState
> *dev, Error **errp)
>          s->blkcfg.num_queues = s->num_queues;
>      }
> 
> -    vhost_dev_set_config_notifier(&s->dev, &blk_ops);
> -
>      return;
> 
>  vhost_err:
> --
> 2.14.3
Maxime Coquelin March 29, 2018, 7:43 a.m. UTC | #2
On 03/29/2018 02:53 AM, Liu, Changpeng wrote:
> 
> 
>> -----Original Message-----
>> From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com]
>> Sent: Thursday, March 29, 2018 3:28 AM
>> To: mst@redhat.com; Liu, Changpeng <changpeng.liu@intel.com>;
>> marcandre.lureau@redhat.com; qemu-devel@nongnu.org
>> Cc: Maxime Coquelin <maxime.coquelin@redhat.com>
>> Subject: [PATCH v2 1/2] vhost-user-blk: set config ops before vhost-user init
>>
>> As soon as vhost-user init is done, the backend may send
>> VHOST_USER_SLAVE_CONFIG_CHANGE_MSG, so let's set the
>> notification callback before it.
>>
>> Also, it will be used to know whether the device supports
>> the config feature to advertize it or not.
>>
>> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>> ---
>>   hw/block/vhost-user-blk.c | 4 ++--
>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
>> index f840f07dfe..262baca432 100644
>> --- a/hw/block/vhost-user-blk.c
>> +++ b/hw/block/vhost-user-blk.c
>> @@ -259,6 +259,8 @@ static void vhost_user_blk_device_realize(DeviceState
>> *dev, Error **errp)
>>       s->dev.vq_index = 0;
>>       s->dev.backend_features = 0;
>>
>> +    vhost_dev_set_config_notifier(&s->dev, &blk_ops);
> Please also remove the line "assert(hdev->vhost_ops);" in function vhost_dev_set_config_notifier at vhost.c file.

Oh right, posting v3 removing this.

Thanks,
Maxime
>> +
>>       ret = vhost_dev_init(&s->dev, &s->chardev, VHOST_BACKEND_TYPE_USER, 0);
>>       if (ret < 0) {
>>           error_setg(errp, "vhost-user-blk: vhost initialization failed: %s",
>> @@ -277,8 +279,6 @@ static void vhost_user_blk_device_realize(DeviceState
>> *dev, Error **errp)
>>           s->blkcfg.num_queues = s->num_queues;
>>       }
>>
>> -    vhost_dev_set_config_notifier(&s->dev, &blk_ops);
>> -
>>       return;
>>
>>   vhost_err:
>> --
>> 2.14.3
>
diff mbox

Patch

diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
index f840f07dfe..262baca432 100644
--- a/hw/block/vhost-user-blk.c
+++ b/hw/block/vhost-user-blk.c
@@ -259,6 +259,8 @@  static void vhost_user_blk_device_realize(DeviceState *dev, Error **errp)
     s->dev.vq_index = 0;
     s->dev.backend_features = 0;
 
+    vhost_dev_set_config_notifier(&s->dev, &blk_ops);
+
     ret = vhost_dev_init(&s->dev, &s->chardev, VHOST_BACKEND_TYPE_USER, 0);
     if (ret < 0) {
         error_setg(errp, "vhost-user-blk: vhost initialization failed: %s",
@@ -277,8 +279,6 @@  static void vhost_user_blk_device_realize(DeviceState *dev, Error **errp)
         s->blkcfg.num_queues = s->num_queues;
     }
 
-    vhost_dev_set_config_notifier(&s->dev, &blk_ops);
-
     return;
 
 vhost_err: