blob: 218a42f6ba38aa4d70ea65090d3f53729b1dc2fe [file] [log] [blame]
Todd Foggoaa292c8c2016-04-06 09:57:01 -04001From a31a1dbdf5e1ff46d04f50fea02e83453b84652c Mon Sep 17 00:00:00 2001
2From: John Daley <johndale@cisco.com>
3Date: Tue, 8 Mar 2016 10:49:07 -0800
4Subject: [PATCH 12/22] enic: fix last packet not being sent
John Lo23650e62016-03-29 16:14:35 -04005
John Lo23650e62016-03-29 16:14:35 -04006 The last packet of the tx burst function array was not being
7 emitted until the subsequent call. The nic descriptor index
8 was being set to the current tx descriptor instead of one past
9 the descriptor as required by the nic.
Todd Foggoaa292c8c2016-04-06 09:57:01 -040010
John Lo23650e62016-03-29 16:14:35 -040011 Fixes: d739ba4c6abf ("enic: improve Tx packet rate")
Todd Foggoaa292c8c2016-04-06 09:57:01 -040012
John Lo23650e62016-03-29 16:14:35 -040013 Signed-off-by: John Daley <johndale@cisco.com>
Todd Foggoaa292c8c2016-04-06 09:57:01 -040014---
15 drivers/net/enic/base/enic_vnic_wq.h | 6 +++---
16 1 file changed, 3 insertions(+), 3 deletions(-)
John Lo23650e62016-03-29 16:14:35 -040017
18diff --git a/drivers/net/enic/base/enic_vnic_wq.h b/drivers/net/enic/base/enic_vnic_wq.h
19index e3ea574..b019109 100644
20--- a/drivers/net/enic/base/enic_vnic_wq.h
21+++ b/drivers/net/enic/base/enic_vnic_wq.h
22@@ -69,11 +69,11 @@ static inline void enic_vnic_post_wq(struct vnic_wq *wq,
23 buf->wr_id = wrid;
24
25 buf = buf->next;
26- if (cq_entry)
27- enic_vnic_post_wq_index(wq);
28+ wq->ring.desc_avail -= desc_skip_cnt;
29 wq->to_use = buf;
30
31- wq->ring.desc_avail -= desc_skip_cnt;
32+ if (cq_entry)
33+ enic_vnic_post_wq_index(wq);
34 }
35
36 #endif /* _ENIC_VNIC_WQ_H_ */
Todd Foggoaa292c8c2016-04-06 09:57:01 -040037--
381.9.1
39