Index: sys/dev/cxgbe/t4_main.c =================================================================== --- sys/dev/cxgbe/t4_main.c +++ sys/dev/cxgbe/t4_main.c @@ -1097,6 +1097,9 @@ if (num_vis > 1) { s->nnmrxq = nports * (num_vis - 1) * iaq.nnmrxq_vi; s->nnmtxq = nports * (num_vis - 1) * iaq.nnmtxq_vi; + } else { + s->nnmrxq = nports * iaq.nnmrxq_vi; + s->nnmtxq = nports * iaq.nnmtxq_vi; } s->neq += s->nnmtxq + s->nnmrxq; s->niq += s->nnmrxq; @@ -1184,7 +1187,7 @@ ofld_rqidx += vi->nofldrxq; #endif #ifdef DEV_NETMAP - if (j > 0) { + if ((pi->nvi == 1) || (pi->nvi > 1 && j > 0)) { vi->first_nm_rxq = nm_rqidx; vi->first_nm_txq = nm_tqidx; vi->nnmrxq = iaq.nnmrxq_vi; @@ -2998,8 +3001,12 @@ iaq->nirq = extra; iaq->nirq += nports * (iaq->nrxq + iaq->nofldrxq); - iaq->nirq += nports * (iaq->num_vis - 1) * - max(iaq->nrxq_vi, iaq->nnmrxq_vi); + if (iaq->num_vis > 1) { + iaq->nirq += nports * (iaq->num_vis - 1) * + max(iaq->nrxq_vi, iaq->nnmrxq_vi); + } else { + iaq->nirq += nports * iaq->nnmrxq_vi; + } iaq->nirq += nports * (iaq->num_vis - 1) * iaq->nofldrxq_vi; }