vpp/dpdk/dpdk-2.2.0_patches/0012-enic-fix-last-packet-not-being-sent.patch
John Lo 23650e6cad Update ENIC driver patches for DPDK 2.2.0
This includes all patches in ENIC driver which are up-streamed to DPDK
to improve RX performance, fix buffer/error handling and interoperation
with link bonding PMD library.

Change-Id: Id4c71a350d5234834951f9261c69db5476ba396b
Signed-off-by: John Lo <loj@cisco.com>
2016-03-29 16:14:35 -04:00

35 lines
1.1 KiB
Diff

commit aba31298526865f5db99eaa54b63eb39dc95b74f
Author: John Daley <johndale@cisco.com>
Date: Tue Mar 8 10:49:07 2016 -0800
enic: fix last packet not being sent
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 descriptor instead of one past
the descriptor as required by the nic.
Fixes: d739ba4c6abf ("enic: improve Tx packet rate")
Signed-off-by: John Daley <johndale@cisco.com>
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_ */