On Tue, Aug 24, 2021 at 6:29 PM Ajit Khaparde wrote: > > During port stop/start sequence the Thor FW is returning an error. > This is because we are deriving incorrect active Rx ring and using > that wrong information in the bnxt_vnic_rss_cfg HWRM command. > > Fix it by using the rx_queue_state from eth_dev. > > Fixes: 0105ea1296c91 ("net/bnxt: support runtime queue setup") > Cc: stable@dpdk.org > > Signed-off-by: Ajit Khaparde > Reviewed-by: Somnath Kotur Patch applied to dpdk-next-net-brcm. > --- > drivers/net/bnxt/bnxt_hwrm.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c > index eb9de45cb9..f29d574235 100644 > --- a/drivers/net/bnxt/bnxt_hwrm.c > +++ b/drivers/net/bnxt/bnxt_hwrm.c > @@ -5078,6 +5078,7 @@ static int > bnxt_vnic_rss_configure_p5(struct bnxt *bp, struct bnxt_vnic_info *vnic) > { > struct hwrm_vnic_rss_cfg_output *resp = bp->hwrm_cmd_resp_addr; > + uint8_t *rxq_state = bp->eth_dev->data->rx_queue_state; > struct hwrm_vnic_rss_cfg_input req = {.req_type = 0 }; > struct bnxt_rx_queue **rxqs = bp->rx_queues; > uint16_t *ring_tbl = vnic->rss_table; > @@ -5111,7 +5112,7 @@ bnxt_vnic_rss_configure_p5(struct bnxt *bp, struct bnxt_vnic_info *vnic) > > /* Find next active ring. */ > for (cnt = 0; cnt < max_rings; cnt++) { > - if (rxqs[k]->rx_started) > + if (rxq_state[k] != RTE_ETH_QUEUE_STATE_STOPPED) > break; > if (++k == max_rings) > k = 0; > -- > 2.21.1 (Apple Git-122.3) >