net/sfc: fix Rx queue start failure path
authorIgor Romanov <igor.romanov@oktetlabs.ru>
Thu, 5 Mar 2020 15:48:55 +0000 (15:48 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 18 Mar 2020 09:21:41 +0000 (10:21 +0100)
Call correct cleanup operations on failure in Rx queue start function.

Fixes: df1bfde4ff0d ("net/sfc: factor out libefx-based Rx datapath")
Fixes: 28944ac098aa ("net/sfc: implement Rx queue start and stop operations")
Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
drivers/net/sfc/sfc_rx.c

index f589ece..891709f 100644 (file)
@@ -822,10 +822,12 @@ sfc_rx_qstart(struct sfc_adapter *sa, unsigned int sw_index)
        return 0;
 
 fail_mac_filter_default_rxq_set:
+       sfc_rx_qflush(sa, sw_index);
        sa->priv.dp_rx->qstop(rxq_info->dp, &rxq->evq->read_ptr);
+       rxq_info->state = SFC_RXQ_INITIALIZED;
 
 fail_dp_qstart:
-       sfc_rx_qflush(sa, sw_index);
+       efx_rx_qdestroy(rxq->common);
 
 fail_rx_qcreate:
 fail_bad_contig_block_size: