From aba31298526865f5db99eaa54b63eb39dc95b74f Mon Sep 17 00:00:00 2001 From: John Daley Date: Tue, 8 Mar 2016 10:49:07 -0800 Subject: [PATCH] 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 --- drivers/net/enic/base/enic_vnic_wq.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/net/enic/base/enic_vnic_wq.h b/drivers/net/enic/base/enic_vnic_wq.h index e3ea5742a2..b019109352 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_ */ -- 2.20.1