[dpdk-dev,v2] lib_vhost:reset secure_len when rte_atomic16_cmpset failed

Message ID 72a55103-9c65-4f2e-9448-919622dbac81@liw0310-PC.local (mailing list archive)
State Not Applicable, archived
Headers

Commit Message

Wei li June 1, 2015, 6:11 a.m. UTC
  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@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
  

Comments

Ouyang Changchun June 1, 2015, 6:14 a.m. UTC | #1
> -----Original Message-----
> From: Wei li [mailto:liw@dtdream.com]
> Sent: Monday, June 1, 2015 2:12 PM
> To: dev@dpdk.org
> Cc: Ouyang, Changchun; liw@dtdream.com
> Subject: [PATCH v2] lib_vhost:reset secure_len when rte_atomic16_cmpset
> failed
> 
> 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@dtdream.com>

Acked-by: Changchun Ouyang<changchun.ouyang@intel.com>
  
Thomas Monjalon June 22, 2015, 4:33 p.m. UTC | #2
2015-06-01 06:14, Ouyang, Changchun:
> From: Wei li, June 1, 2015 2:12 PM:
> > 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@dtdream.com>
> 
> Acked-by: Changchun Ouyang<changchun.ouyang@intel.com>

Is it already fixed by this commit?
	http://dpdk.org/browse/dpdk/commit/?id=2927c37ca4e04067
  
Ouyang Changchun June 23, 2015, 2:24 a.m. UTC | #3
Hi Thomas,

> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Tuesday, June 23, 2015 12:34 AM
> To: Ouyang, Changchun; Wei li
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v2] lib_vhost:reset secure_len when
> rte_atomic16_cmpset failed
> 
> 2015-06-01 06:14, Ouyang, Changchun:
> > From: Wei li, June 1, 2015 2:12 PM:
> > > 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@dtdream.com>
> >
> > Acked-by: Changchun Ouyang<changchun.ouyang@intel.com>
> 
> Is it already fixed by this commit?
> 	http://dpdk.org/browse/dpdk/commit/?id=2927c37ca4e04067

You are right, so no need apply this patch. 
Thanks
Changchun
  

Patch

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);