]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnx2x: allocate smaller Rx rings for 1G functions
authorMintz Yuval <yuvalmin@broadcom.com>
Wed, 15 Feb 2012 02:10:28 +0000 (02:10 +0000)
committerJoe Jin <joe.jin@oracle.com>
Wed, 16 May 2012 14:47:19 +0000 (22:47 +0800)
(cherry picked from commit d760fc37b0f74502b3f748951f22c6683b079a8e)
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>
Signed-off-by: Joe Jin <joe.jin@oracle.com>
drivers/net/bnx2x/bnx2x_cmn.c

index ba8dd31f6f95ee4c68a012f423af3c35a953ca45..16d0d4689e5a81f6fa3450782dc4faa31f6622ff 100644 (file)
@@ -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);