[dpdk-dev,v3] enic: fix last packet being not sent bug

Message ID 1456105516-520-1-git-send-email-johndale@cisco.com (mailing list archive)
State Changes Requested, archived
Delegated to: Bruce Richardson
Headers

Commit Message

John Daley (johndale) Feb. 22, 2016, 1:45 a.m. UTC
  The last packet of the tx burst function array was not being
emitted until the subsequent call.  The nic descriptor index
was being set to the current tx descriptr instead of one past the
the descriptor as required by nic.

Signed-off-by: johndale <johndale@cisco.com>
---
Forgot sign-off, annotated message in wrong spot.
 drivers/net/enic/base/enic_vnic_wq.h | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
  

Patch

diff --git a/drivers/net/enic/base/enic_vnic_wq.h b/drivers/net/enic/base/enic_vnic_wq.h
index e3ea574..b019109 100644
--- a/drivers/net/enic/base/enic_vnic_wq.h
+++ b/drivers/net/enic/base/enic_vnic_wq.h
@@ -69,11 +69,11 @@  static inline void enic_vnic_post_wq(struct vnic_wq *wq,
 	buf->wr_id = wrid;
 
 	buf = buf->next;
-	if (cq_entry)
-		enic_vnic_post_wq_index(wq);
+	wq->ring.desc_avail -= desc_skip_cnt;
 	wq->to_use = buf;
 
-	wq->ring.desc_avail -= desc_skip_cnt;
+	if (cq_entry)
+		enic_vnic_post_wq_index(wq);
 }
 
 #endif /* _ENIC_VNIC_WQ_H_ */