[dpdk-dev] [PATCH v2 02/17] vhost: fix return code of messages requiring replies
Maxime Coquelin
maxime.coquelin at redhat.com
Wed Oct 3 16:49:58 CEST 2018
On 10/03/2018 03:26 PM, Ilya Maximets wrote:
> On 02.10.2018 12:36, Maxime Coquelin wrote:
>> VHOST_USER_GET_PROTOCOL_FEATURES, VHOST_USER_GET_VRING_BASE
>> and VHOST_USER_SET_LOG_BASE require replies, so their handlers
>> should return VH_RESULT_REPLY, not VH_RESULT_OK.
>>
>> Fixes: 2cfbbb86c62a ("vhost: unify message handling function signature")
>>
>> Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com>
>> ---
>> lib/librte_vhost/vhost_user.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
>> index 060b41893..ce0ac0098 100644
>> --- a/lib/librte_vhost/vhost_user.c
>> +++ b/lib/librte_vhost/vhost_user.c
>> @@ -1161,7 +1161,7 @@ vhost_user_get_vring_base(struct virtio_net **pdev,
>>
>> msg->size = sizeof(msg->payload.state);
>>
>> - return VH_RESULT_OK;
>> + return VH_RESULT_REPLY;
>> }
>>
>> /*
>> @@ -1218,7 +1218,7 @@ vhost_user_get_protocol_features(struct virtio_net **pdev,
>> msg->payload.u64 = protocol_features;
>> msg->size = sizeof(msg->payload.u64);
>>
>> - return VH_RESULT_OK;
>> + return VH_RESULT_REPLY;
>> }
>>
>> static int
>> @@ -1298,7 +1298,7 @@ vhost_user_set_log_base(struct virtio_net **pdev, struct VhostUserMsg *msg)
>>
>> msg->size = sizeof(msg->payload.u64);
>
> Maybe we need to set size to zero? This message should not have
> "Slave payload" according to docs and QEMU does not check it.
I agree with the fix, but it's here since the beginning, not related to
this series. I will add it at the beginning of the series though.
I think the spec could also be updated, to clarify what payload is
expected when VHOST_USER_PROTOCOL_F_LOG_SHMFD is negotiated.
>
>>
>> - return VH_RESULT_OK;
>> + return VH_RESULT_REPLY;
>> }
>>
>> static int vhost_user_set_log_fd(struct virtio_net **pdev __rte_unused,
>>
More information about the dev
mailing list