net/sfc: add Tx queue flush failed flag for sanity
authorAndrew Rybchenko <arybchenko@solarflare.com>
Sat, 27 May 2017 07:55:33 +0000 (08:55 +0100)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 12 Jun 2017 09:41:27 +0000 (10:41 +0100)
Avoid usage of flushing state when Tx queue flush init failed.

Fixes: fed9aeb46c19 ("net/sfc: implement transmit path start / stop")
Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/sfc/sfc_tx.c
drivers/net/sfc/sfc_tx.h

index d75fb84..9e426ca 100644 (file)
@@ -503,7 +503,7 @@ sfc_tx_qstop(struct sfc_adapter *sa, unsigned int sw_index)
             (retry_count < SFC_TX_QFLUSH_ATTEMPTS);
             ++retry_count) {
                if (efx_tx_qflush(txq->common) != 0) {
-                       txq->state |= SFC_TXQ_FLUSHING;
+                       txq->state |= SFC_TXQ_FLUSH_FAILED;
                        break;
                }
 
index 6c3ac3b..0c1c708 100644 (file)
@@ -64,6 +64,8 @@ enum sfc_txq_state_bit {
 #define SFC_TXQ_FLUSHING       (1 << SFC_TXQ_FLUSHING_BIT)
        SFC_TXQ_FLUSHED_BIT,
 #define SFC_TXQ_FLUSHED                (1 << SFC_TXQ_FLUSHED_BIT)
+       SFC_TXQ_FLUSH_FAILED_BIT,
+#define SFC_TXQ_FLUSH_FAILED   (1 << SFC_TXQ_FLUSH_FAILED_BIT)
 };
 
 /**