when rte_atomic16_cmpset return 0 in first loop, secure_len
 should be reset to 0 in second loop, otherwise (pkt_len > secure_len) always
 be false, the num of desc maybe not enough

Signed-off-by: Wei li <liw at dtdream.com>
---
 lib/librte_vhost/vhost_rxtx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

v1->v2
add more descriotion
delete unnecessary variable assignment

diff --git a/lib/librte_vhost/vhost_rxtx.c b/lib/librte_vhost/vhost_rxtx.c
index 4809d32..b7e356c 100644
--- a/lib/librte_vhost/vhost_rxtx.c
+++ b/lib/librte_vhost/vhost_rxtx.c
@@ -418,7 +418,7 @@ virtio_dev_merge_rx(struct virtio_net *dev, uint16_t 
queue_id,
                return 0;

        for (pkt_idx = 0; pkt_idx < count; pkt_idx++) {
-               uint32_t secure_len = 0;
+               uint32_t secure_len;
                uint16_t need_cnt;
                uint32_t vec_idx = 0;
                uint32_t pkt_len = pkts[pkt_idx]->pkt_len + vq->vhost_hlen;
@@ -431,6 +431,7 @@ virtio_dev_merge_rx(struct virtio_net *dev, uint16_t 
queue_id,
                         */
                        res_base_idx = vq->last_used_idx_res;
                        res_cur_idx = res_base_idx;
+                       secure_len = 0;

                        do {
                                avail_idx = *((volatile uint16_t 
*)&vq->avail->idx);
-- 
1.9.5.msysgit.1


Reply via email to