| 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 |
| |