]> git.droids-corp.org - dpdk.git/commitdiff
enic: fix last packet not being sent
authorJohn Daley <johndale@cisco.com>
Tue, 8 Mar 2016 18:49:07 +0000 (10:49 -0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 16 Mar 2016 15:57:39 +0000 (16:57 +0100)
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

index e3ea5742a26ce0cc6f14bc4477d271a2647bdc20..b0191093523ba9d212d4feb619e8fdd2ddbe7e9c 100644 (file)
@@ -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_ */