net/ice: fix Tx hang with TSO
authorHaiyue Wang <haiyue.wang@intel.com>
Fri, 31 Jul 2020 04:27:13 +0000 (12:27 +0800)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 5 Aug 2020 17:23:31 +0000 (19:23 +0200)
The variables 'td_offset' and 'td_tag' should be reset to 0 for every
burst packet, otherwise the fields of Tx Descriptor will be set wrong,
this will cause the MDD event error, and Tx will hang.

Fixes: 17c7d0f9d6a4 ("net/ice: support basic Rx/Tx")
Cc: stable@dpdk.org
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/ice/ice_rxtx.c

index bcb67ec..b83c5c8 100644 (file)
@@ -2431,6 +2431,8 @@ ice_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
                tx_pkt = *tx_pkts++;
 
                td_cmd = 0;
+               td_tag = 0;
+               td_offset = 0;
                ol_flags = tx_pkt->ol_flags;
                tx_offload.l2_len = tx_pkt->l2_len;
                tx_offload.l3_len = tx_pkt->l3_len;