From a47c6d6246cd9cf13ab4b89edb1dab70d464bb8b Mon Sep 17 00:00:00 2001 From: Andrew Rybchenko Date: Sat, 27 May 2017 08:55:33 +0100 Subject: [PATCH] net/sfc: add Tx queue flush failed flag for sanity 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 --- drivers/net/sfc/sfc_tx.c | 2 +- drivers/net/sfc/sfc_tx.h | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c index d75fb84eb7..9e426ca9d7 100644 --- a/drivers/net/sfc/sfc_tx.c +++ b/drivers/net/sfc/sfc_tx.c @@ -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; } diff --git a/drivers/net/sfc/sfc_tx.h b/drivers/net/sfc/sfc_tx.h index 6c3ac3b619..0c1c7083bd 100644 --- a/drivers/net/sfc/sfc_tx.h +++ b/drivers/net/sfc/sfc_tx.h @@ -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) }; /** -- 2.20.1