]> git.droids-corp.org - dpdk.git/commitdiff
net/bnxt: fix scalar Rx datapath on Thor
authorSomnath Kotur <somnath.kotur@broadcom.com>
Wed, 3 Nov 2021 16:04:32 +0000 (21:34 +0530)
committerAjit Khaparde <ajit.khaparde@broadcom.com>
Fri, 5 Nov 2021 01:00:49 +0000 (02:00 +0100)
The patch introduced by
commit 657c2a7f1dd4 ("net/bnxt: create aggregation rings when needed")
ended up shortening the return code path from the function thereby
resulting in not executing the line of code at the end of the function
that was resetting the next consumer index to 0.
This would result in an application crash when error recovery or other
port stop/start scenarios were invoked on Thor which is what this
commit 61cd4384fabf ("net/bnxt: fix crash after port stop/start")
was addressing.
Fix it by moving the resetting line of code before the return path
in the case when aggregation rings are not used (default case).

Fixes: 657c2a7f1dd4 ("net/bnxt: create aggregation rings when needed")
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
drivers/net/bnxt/bnxt_rxr.c

index 992f97388c50142debcd991e565c5a99e2b81c54..8bc8ddc3538a973577870e1f042236158e6efe82 100644 (file)
@@ -1369,6 +1369,9 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)
                rxr->rx_buf_ring[i] = &rxq->fake_mbuf;
        }
 
+       /* Explicitly reset this driver internal tracker on a ring init */
+       rxr->rx_next_cons = 0;
+
        if (!bnxt_need_agg_ring(rxq->bp->eth_dev))
                return 0;
 
@@ -1407,9 +1410,6 @@ int bnxt_init_one_rx_ring(struct bnxt_rx_queue *rxq)
        }
        PMD_DRV_LOG(DEBUG, "TPA alloc Done!\n");
 
-       /* Explicitly reset this driver internal tracker on a ring init */
-       rxr->rx_next_cons = 0;
-
        return 0;
 }