From 0fa7560dfd8ddd7d6c404c4478b2f90b2e0af26d Mon Sep 17 00:00:00 2001 From: Navdeep Parhar Date: Mon, 28 Aug 2017 03:25:41 +0000 Subject: [PATCH] cxgbe(4): Fix some assertions during driver detach. The netmap queues can't be initialized if the VI isn't. MFC after: 3 days --- sys/dev/cxgbe/t4_sge.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/sys/dev/cxgbe/t4_sge.c b/sys/dev/cxgbe/t4_sge.c index d5ba58e568e..ab807c8a0ad 100644 --- a/sys/dev/cxgbe/t4_sge.c +++ b/sys/dev/cxgbe/t4_sge.c @@ -3306,7 +3306,10 @@ free_nm_rxq(struct vi_info *vi, struct sge_nm_rxq *nm_rxq) { struct adapter *sc = vi->pi->adapter; - MPASS(nm_rxq->iq_cntxt_id == INVALID_NM_RXQ_CNTXT_ID); + if (vi->flags & VI_INIT_DONE) + MPASS(nm_rxq->iq_cntxt_id == INVALID_NM_RXQ_CNTXT_ID); + else + MPASS(nm_rxq->iq_cntxt_id == 0); free_ring(sc, nm_rxq->iq_desc_tag, nm_rxq->iq_desc_map, nm_rxq->iq_ba, nm_rxq->iq_desc); @@ -3366,7 +3369,10 @@ free_nm_txq(struct vi_info *vi, struct sge_nm_txq *nm_txq) { struct adapter *sc = vi->pi->adapter; - MPASS(nm_txq->cntxt_id == INVALID_NM_TXQ_CNTXT_ID); + if (vi->flags & VI_INIT_DONE) + MPASS(nm_txq->cntxt_id == INVALID_NM_TXQ_CNTXT_ID); + else + MPASS(nm_txq->cntxt_id == 0); free_ring(sc, nm_txq->desc_tag, nm_txq->desc_map, nm_txq->ba, nm_txq->desc);