On Mon, Mar 13, 2023 at 1:01 PM Dave Johnson wrote: > > When using CoS classification the number of vnics is capped > to avoid unnecessary memzone allocations. > > Signed-off-by: Dave Johnson Acked-by: Ajit Khaparde Patch merged to dpdk-next-net-brcm. Thanks > --- > .mailmap | 1 + > drivers/net/bnxt/bnxt.h | 1 + > drivers/net/bnxt/bnxt_hwrm.c | 10 ++++++++-- > 3 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/.mailmap b/.mailmap > index 4018f0fc47..ae52428557 100644 > --- a/.mailmap > +++ b/.mailmap > @@ -271,6 +271,7 @@ Dariusz Stojaczyk > Darren Edamura > Dave Burley > Dave Ertman > +Dave Johnson > David Binderman > David Bouyeure > David Christensen > diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h > index f6eaaeb470..48bd8f2418 100644 > --- a/drivers/net/bnxt/bnxt.h > +++ b/drivers/net/bnxt/bnxt.h > @@ -811,6 +811,7 @@ struct bnxt { > uint16_t max_l2_ctx; > uint16_t max_rx_em_flows; > uint16_t max_vnics; > +#define BNXT_MAX_VNICS_COS_CLASSIFY 8 > uint16_t max_stat_ctx; > uint16_t max_tpa_v2; > uint16_t first_vf_id; > diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c > index 51e1e2d6b3..d86ac73293 100644 > --- a/drivers/net/bnxt/bnxt_hwrm.c > +++ b/drivers/net/bnxt/bnxt_hwrm.c > @@ -902,7 +902,10 @@ static int __bnxt_hwrm_func_qcaps(struct bnxt *bp) > bp->max_l2_ctx = rte_le_to_cpu_16(resp->max_l2_ctxs); > if (!BNXT_CHIP_P5(bp) && !bp->pdev->max_vfs) > bp->max_l2_ctx += bp->max_rx_em_flows; > - bp->max_vnics = rte_le_to_cpu_16(resp->max_vnics); > + if (bp->vnic_cap_flags & BNXT_VNIC_CAP_COS_CLASSIFY) > + bp->max_vnics = rte_le_to_cpu_16(BNXT_MAX_VNICS_COS_CLASSIFY); > + else > + bp->max_vnics = rte_le_to_cpu_16(resp->max_vnics); > PMD_DRV_LOG(DEBUG, "Max l2_cntxts is %d vnics is %d\n", > bp->max_l2_ctx, bp->max_vnics); > bp->max_stat_ctx = rte_le_to_cpu_16(resp->max_stat_ctx); > @@ -1211,7 +1214,10 @@ int bnxt_hwrm_func_resc_qcaps(struct bnxt *bp) > bp->max_l2_ctx = rte_le_to_cpu_16(resp->max_l2_ctxs); > if (!BNXT_CHIP_P5(bp) && !bp->pdev->max_vfs) > bp->max_l2_ctx += bp->max_rx_em_flows; > - bp->max_vnics = rte_le_to_cpu_16(resp->max_vnics); > + if (bp->vnic_cap_flags & BNXT_VNIC_CAP_COS_CLASSIFY) > + bp->max_vnics = rte_le_to_cpu_16(BNXT_MAX_VNICS_COS_CLASSIFY); > + else > + bp->max_vnics = rte_le_to_cpu_16(resp->max_vnics); > bp->max_stat_ctx = rte_le_to_cpu_16(resp->max_stat_ctx); > bp->max_nq_rings = rte_le_to_cpu_16(resp->max_msix); > bp->vf_resv_strategy = rte_le_to_cpu_16(resp->vf_reservation_strategy); > -- > 2.35.6 >