aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom
diff options
context:
space:
mode:
authorYuval Mintz <yuvalmin@broadcom.com>2012-10-03 00:22:59 -0400
committerDavid S. Miller <davem@davemloft.net>2012-10-03 16:34:15 -0400
commit065f8b9210b46c49b578d188ce8b8ee240a55777 (patch)
tree8f1550c02340e4616d80a931491ae696575acea8 /drivers/net/ethernet/broadcom
parent8c357ebd5693b95ca6bb21242838ca3738a68450 (diff)
bnx2x: fix ring size for 10G functions
Commit d760fc37b0f74502b3f748951f22c6683b079a8e caused 1G functions to allocate rx rings which were 1/10 of the size of 10G functions' rx rings. However, it also caused 10G functions on 5771x boards to allocate small rings, which limits their possible (default) rx throughput. This patch causes all 10G functions to use rings of intended length by default. Signed-off-by: Yuval Mintz <yuvalmin@broadcom.com> Signed-off-by: Ariel Elior <ariele@broadcom.com> Signed-off-by: Eilon Greenstein <eilong@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index 30f04a389227..24220992413f 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -3523,15 +3523,18 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index)
3523 } else 3523 } else
3524#endif 3524#endif
3525 if (!bp->rx_ring_size) { 3525 if (!bp->rx_ring_size) {
3526 u32 cfg = SHMEM_RD(bp,
3527 dev_info.port_hw_config[BP_PORT(bp)].default_cfg);
3528
3529 rx_ring_size = MAX_RX_AVAIL/BNX2X_NUM_RX_QUEUES(bp); 3526 rx_ring_size = MAX_RX_AVAIL/BNX2X_NUM_RX_QUEUES(bp);
3530 3527
3531 /* Dercease ring size for 1G functions */ 3528 if (CHIP_IS_E3(bp)) {
3532 if ((cfg & PORT_HW_CFG_NET_SERDES_IF_MASK) == 3529 u32 cfg = SHMEM_RD(bp,
3533 PORT_HW_CFG_NET_SERDES_IF_SGMII) 3530 dev_info.port_hw_config[BP_PORT(bp)].
3534 rx_ring_size /= 10; 3531 default_cfg);
3532
3533 /* Decrease ring size for 1G functions */
3534 if ((cfg & PORT_HW_CFG_NET_SERDES_IF_MASK) ==
3535 PORT_HW_CFG_NET_SERDES_IF_SGMII)
3536 rx_ring_size /= 10;
3537 }
3535 3538
3536 /* allocate at least number of buffers required by FW */ 3539 /* allocate at least number of buffers required by FW */
3537 rx_ring_size = max_t(int, bp->disable_tpa ? MIN_RX_SIZE_NONTPA : 3540 rx_ring_size = max_t(int, bp->disable_tpa ? MIN_RX_SIZE_NONTPA :