From: Mintz Yuval Date: Wed, 15 Feb 2012 02:10:28 +0000 (+0000) Subject: bnx2x: allocate smaller Rx rings for 1G functions X-Git-Tag: v2.6.39-400.9.0~423^2~19^2~11^2~480 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=1ae4ccaba506210c1cdf6c2f11a72ac6adde216e;p=users%2Fjedix%2Flinux-maple.git bnx2x: allocate smaller Rx rings for 1G functions (cherry picked from commit d760fc37b0f74502b3f748951f22c6683b079a8e) Signed-off-by: Yuval Mintz Signed-off-by: Eilon Greenstein Signed-off-by: David S. Miller Signed-off-by: Joe Jin --- diff --git a/drivers/net/bnx2x/bnx2x_cmn.c b/drivers/net/bnx2x/bnx2x_cmn.c index ba8dd31f6f95..16d0d4689e5a 100644 --- a/drivers/net/bnx2x/bnx2x_cmn.c +++ b/drivers/net/bnx2x/bnx2x_cmn.c @@ -3123,9 +3123,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);