examples/vhost: fix uninitialized descriptor indexes
authorJerin Jacob <jerin.jacob@caviumnetworks.com>
Fri, 2 Jun 2017 11:20:31 +0000 (16:50 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 5 Jun 2017 12:28:32 +0000 (14:28 +0200)
Fixing the below error by returning from the function early
when count == 0.

Issue flagged by GCC 7.1.1

examples/vhost/virtio_net.c:370:38: error: ‘desc_indexes[0]’ may be used
uninitialized in this function [-Werror=maybe-uninitialized]
  rte_prefetch0(&vr->desc[desc_indexes[0]]);

Fixes: ca059fa5e290 ("examples/vhost: demonstrate the new generic APIs")
Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
examples/vhost/virtio_net.c

index cc2c3d8..5e1ed44 100644 (file)
@@ -350,6 +350,9 @@ vs_dequeue_pkts(struct vhost_dev *dev, uint16_t queue_id,
        count = RTE_MIN(count, MAX_PKT_BURST);
        count = RTE_MIN(count, free_entries);
 
+       if (unlikely(count == 0))
+               return 0;
+
        /*
         * Retrieve all of the head indexes first and pre-update used entries
         * to avoid caching issues.
@@ -385,8 +388,6 @@ vs_dequeue_pkts(struct vhost_dev *dev, uint16_t queue_id,
                }
 
        }
-       if (!i)
-               return 0;
 
        queue->last_avail_idx += i;
        queue->last_used_idx += i;