blob: 218a42f6ba38aa4d70ea65090d3f53729b1dc2fe [file] [log] [blame]
From a31a1dbdf5e1ff46d04f50fea02e83453b84652c Mon Sep 17 00:00:00 2001
From: John Daley <johndale@cisco.com>
Date: Tue, 8 Mar 2016 10:49:07 -0800
Subject: [PATCH 12/22] 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>
---
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 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_ */
--
1.9.1