net/nfp: clean Tx descriptor flags
authorAlejandro Lucero <alejandro.lucero@netronome.com>
Tue, 21 Mar 2017 10:43:19 +0000 (10:43 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 4 Apr 2017 16:59:45 +0000 (18:59 +0200)
When LSO, not doing this can led to firmware disruption. It does
not show as error because TCP ends up sending data again later on.

Fixes: 9ba3d0ae2090 ("net/nfp: add TSO support")
Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
drivers/net/nfp/nfp_net.c

index f8ed976..9d9420d 100644 (file)
@@ -1660,16 +1660,22 @@ nfp_net_tx_tso(struct nfp_net_txq *txq, struct nfp_net_tx_desc *txd,
        struct nfp_net_hw *hw = txq->hw;
 
        if (!(hw->cap & NFP_NET_CFG_CTRL_LSO))
-               return;
+               goto clean_txd;
 
        ol_flags = mb->ol_flags;
 
        if (!(ol_flags & PKT_TX_TCP_SEG))
-               return;
+               goto clean_txd;
 
        txd->l4_offset = mb->l2_len + mb->l3_len + mb->l4_len;
        txd->lso = rte_cpu_to_le_16(mb->tso_segsz);
-       txd->flags |= PCIE_DESC_TX_LSO;
+       txd->flags = PCIE_DESC_TX_LSO;
+       return;
+
+clean_txd:
+       txd->flags = 0;
+       txd->l4_offset = 0;
+       txd->lso = 0;
 }
 
 /* nfp_net_tx_cksum - Set TX CSUM offload flags in TX descriptor */