net/bnxt: fix max ring count
authorSomnath Kotur <somnath.kotur@broadcom.com>
Fri, 24 Apr 2020 11:00:54 +0000 (16:30 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 5 May 2020 13:53:57 +0000 (15:53 +0200)
Max Rx Ring count could be < Max stat contexts. While accounting
for stat contexts, this should be also considered and
the max ring count adjusted accordingly.

Fixes: f03e66cb64ce ("net/bnxt: limit queue count for NS3/Stingray devices")
Cc: stable@dpdk.org
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
drivers/net/bnxt/bnxt.h

index 586d3f5..12fed1e 100644 (file)
@@ -653,10 +653,10 @@ struct bnxt {
 #define MAX_STINGRAY_RINGS             128U
 /* For sake of symmetry, max Tx rings == max Rx rings, one stat ctx for each */
 #define BNXT_MAX_RX_RINGS(bp) \
-       (BNXT_STINGRAY(bp) ? RTE_MIN(RTE_MIN(bp->max_rx_rings, \
+       (BNXT_STINGRAY(bp) ? RTE_MIN(RTE_MIN(bp->max_rx_rings / 2U, \
                                             MAX_STINGRAY_RINGS), \
                                     bp->max_stat_ctx / 2U) : \
-                               RTE_MIN(bp->max_rx_rings, \
+                               RTE_MIN(bp->max_rx_rings / 2U, \
                                        bp->max_stat_ctx / 2U))
 #define BNXT_MAX_TX_RINGS(bp) \
        (RTE_MIN((bp)->max_tx_rings, BNXT_MAX_RX_RINGS(bp)))