From: Andrew Boyer Date: Wed, 16 Dec 2020 21:12:57 +0000 (-0800) Subject: net/ionic: stop queues when LIF is stopped X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=a0a99f21dd8a3edfe7d8e35831793930d2c0172e;p=dpdk.git net/ionic: stop queues when LIF is stopped Otherwise they cannot be restarted, because the FW will reject INIT or ENA commands on queues which are already running. Signed-off-by: Andrew Boyer --- diff --git a/drivers/net/ionic/ionic_lif.c b/drivers/net/ionic/ionic_lif.c index c1a95ca7c2..3e643d1455 100644 --- a/drivers/net/ionic/ionic_lif.c +++ b/drivers/net/ionic/ionic_lif.c @@ -66,9 +66,23 @@ ionic_qcq_disable(struct ionic_qcq *qcq) void ionic_lif_stop(struct ionic_lif *lif) { + uint32_t i; + IONIC_PRINT_CALL(); lif->state &= ~IONIC_LIF_F_UP; + + for (i = 0; i < lif->nrxqcqs; i++) { + struct ionic_qcq *rxq = lif->rxqcqs[i]; + if (rxq->flags & IONIC_QCQ_F_INITED) + (void)ionic_dev_rx_queue_stop(lif->eth_dev, i); + } + + for (i = 0; i < lif->ntxqcqs; i++) { + struct ionic_qcq *txq = lif->txqcqs[i]; + if (txq->flags & IONIC_QCQ_F_INITED) + (void)ionic_dev_tx_queue_stop(lif->eth_dev, i); + } } void