diff options
| -rw-r--r-- | drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c | 17 |
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 : |
