summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
diff options
context:
space:
mode:
authorMintz Yuval2012-02-15 03:10:28 +0100
committerDavid S. Miller2012-02-15 21:30:49 +0100
commitd760fc37b0f74502b3f748951f22c6683b079a8e (patch)
tree3ecf9f42919bdff47ca11f56683589da948032d0 /drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
parentbnx2x: allocate memory dynamically in ethtool self-test. (diff)
downloadkernel-qcow2-linux-d760fc37b0f74502b3f748951f22c6683b079a8e.tar.gz
kernel-qcow2-linux-d760fc37b0f74502b3f748951f22c6683b079a8e.tar.xz
kernel-qcow2-linux-d760fc37b0f74502b3f748951f22c6683b079a8e.zip
bnx2x: allocate smaller Rx rings for 1G functions
Signed-off-by: Yuval Mintz <yuvalmin@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/bnx2x/bnx2x_cmn.c')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index 7f6a1b1be74d..5d15efc2a9e2 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -3122,9 +3122,16 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index)
} else
#endif
if (!bp->rx_ring_size) {
+ u32 cfg = SHMEM_RD(bp,
+ dev_info.port_hw_config[BP_PORT(bp)].default_cfg);
rx_ring_size = MAX_RX_AVAIL/BNX2X_NUM_RX_QUEUES(bp);
+ /* Dercease ring size for 1G functions */
+ if ((cfg & PORT_HW_CFG_NET_SERDES_IF_MASK) ==
+ PORT_HW_CFG_NET_SERDES_IF_SGMII)
+ rx_ring_size /= 10;
+
/* allocate at least number of buffers required by FW */
rx_ring_size = max_t(int, bp->disable_tpa ? MIN_RX_SIZE_NONTPA :
MIN_RX_SIZE_TPA, rx_ring_size);