vhost: fix the inflight resubmit check
Checks
Commit Message
The frontend may not send the get_inflight_fd and
set_inflight_fd although we negotiate the protocol
feature. When we meet this situation just return OK.
Fixes: ad0a4ae491fe ("vhost: checkout resubmit inflight information")
Cc: stable@dpdk.org
Signed-off-by: Jin Yu <jin.yu@intel.com>
---
lib/librte_vhost/vhost_user.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
Comments
On 12/25/19 3:18 PM, Jin Yu wrote:
> The frontend may not send the get_inflight_fd and
> set_inflight_fd although we negotiate the protocol
> feature. When we meet this situation just return OK.
>
> Fixes: ad0a4ae491fe ("vhost: checkout resubmit inflight information")
> Cc: stable@dpdk.org
>
> Signed-off-by: Jin Yu <jin.yu@intel.com>
> ---
> lib/librte_vhost/vhost_user.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Thanks,
Maxime
On 12/25/19 3:18 PM, Jin Yu wrote:
> The frontend may not send the get_inflight_fd and
> set_inflight_fd although we negotiate the protocol
> feature. When we meet this situation just return OK.
>
> Fixes: ad0a4ae491fe ("vhost: checkout resubmit inflight information")
> Cc: stable@dpdk.org
>
> Signed-off-by: Jin Yu <jin.yu@intel.com>
> ---
> lib/librte_vhost/vhost_user.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
Applied to dpdk-next-virtio/master
Thanks,
Maxime
@@ -1629,8 +1629,11 @@ vhost_check_queue_inflights_split(struct virtio_net *dev,
(1ULL << VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD)))
return RTE_VHOST_MSG_RESULT_OK;
+ /* The frontend may still not support the inflight feature
+ * although we negotiate the protocol feature.
+ */
if ((!vq->inflight_split))
- return RTE_VHOST_MSG_RESULT_ERR;
+ return RTE_VHOST_MSG_RESULT_OK;
if (!vq->inflight_split->version) {
vq->inflight_split->version = INFLIGHT_VERSION;
@@ -1710,8 +1713,11 @@ vhost_check_queue_inflights_packed(struct virtio_net *dev,
(1ULL << VHOST_USER_PROTOCOL_F_INFLIGHT_SHMFD)))
return RTE_VHOST_MSG_RESULT_OK;
+ /* The frontend may still not support the inflight feature
+ * although we negotiate the protocol feature.
+ */
if ((!vq->inflight_packed))
- return RTE_VHOST_MSG_RESULT_ERR;
+ return RTE_VHOST_MSG_RESULT_OK;
if (!vq->inflight_packed->version) {
vq->inflight_packed->version = INFLIGHT_VERSION;