aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c27
1 files changed, 14 insertions, 13 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index 5c3eb17c4f4..e575e89c7d4 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -993,8 +993,6 @@ void __bnx2x_link_report(struct bnx2x *bp)
993void bnx2x_init_rx_rings(struct bnx2x *bp) 993void bnx2x_init_rx_rings(struct bnx2x *bp)
994{ 994{
995 int func = BP_FUNC(bp); 995 int func = BP_FUNC(bp);
996 int max_agg_queues = CHIP_IS_E1(bp) ? ETH_MAX_AGGREGATION_QUEUES_E1 :
997 ETH_MAX_AGGREGATION_QUEUES_E1H_E2;
998 u16 ring_prod; 996 u16 ring_prod;
999 int i, j; 997 int i, j;
1000 998
@@ -1007,7 +1005,7 @@ void bnx2x_init_rx_rings(struct bnx2x *bp)
1007 1005
1008 if (!fp->disable_tpa) { 1006 if (!fp->disable_tpa) {
1009 /* Fill the per-aggregtion pool */ 1007 /* Fill the per-aggregtion pool */
1010 for (i = 0; i < max_agg_queues; i++) { 1008 for (i = 0; i < MAX_AGG_QS(bp); i++) {
1011 struct bnx2x_agg_info *tpa_info = 1009 struct bnx2x_agg_info *tpa_info =
1012 &fp->tpa_info[i]; 1010 &fp->tpa_info[i];
1013 struct sw_rx_bd *first_buf = 1011 struct sw_rx_bd *first_buf =
@@ -1047,7 +1045,7 @@ void bnx2x_init_rx_rings(struct bnx2x *bp)
1047 bnx2x_free_rx_sge_range(bp, fp, 1045 bnx2x_free_rx_sge_range(bp, fp,
1048 ring_prod); 1046 ring_prod);
1049 bnx2x_free_tpa_pool(bp, fp, 1047 bnx2x_free_tpa_pool(bp, fp,
1050 max_agg_queues); 1048 MAX_AGG_QS(bp));
1051 fp->disable_tpa = 1; 1049 fp->disable_tpa = 1;
1052 ring_prod = 0; 1050 ring_prod = 0;
1053 break; 1051 break;
@@ -1143,9 +1141,7 @@ static void bnx2x_free_rx_skbs(struct bnx2x *bp)
1143 bnx2x_free_rx_bds(fp); 1141 bnx2x_free_rx_bds(fp);
1144 1142
1145 if (!fp->disable_tpa) 1143 if (!fp->disable_tpa)
1146 bnx2x_free_tpa_pool(bp, fp, CHIP_IS_E1(bp) ? 1144 bnx2x_free_tpa_pool(bp, fp, MAX_AGG_QS(bp));
1147 ETH_MAX_AGGREGATION_QUEUES_E1 :
1148 ETH_MAX_AGGREGATION_QUEUES_E1H_E2);
1149 } 1145 }
1150} 1146}
1151 1147
@@ -3100,15 +3096,20 @@ static int bnx2x_alloc_fp_mem_at(struct bnx2x *bp, int index)
3100 struct bnx2x_fastpath *fp = &bp->fp[index]; 3096 struct bnx2x_fastpath *fp = &bp->fp[index];
3101 int ring_size = 0; 3097 int ring_size = 0;
3102 u8 cos; 3098 u8 cos;
3099 int rx_ring_size = 0;
3103 3100
3104 /* if rx_ring_size specified - use it */ 3101 /* if rx_ring_size specified - use it */
3105 int rx_ring_size = bp->rx_ring_size ? bp->rx_ring_size : 3102 if (!bp->rx_ring_size) {
3106 MAX_RX_AVAIL/BNX2X_NUM_RX_QUEUES(bp);
3107 3103
3108 /* allocate at least number of buffers required by FW */ 3104 rx_ring_size = MAX_RX_AVAIL/BNX2X_NUM_RX_QUEUES(bp);
3109 rx_ring_size = max_t(int, bp->disable_tpa ? MIN_RX_SIZE_NONTPA : 3105
3110 MIN_RX_SIZE_TPA, 3106 /* allocate at least number of buffers required by FW */
3111 rx_ring_size); 3107 rx_ring_size = max_t(int, bp->disable_tpa ? MIN_RX_SIZE_NONTPA :
3108 MIN_RX_SIZE_TPA, rx_ring_size);
3109
3110 bp->rx_ring_size = rx_ring_size;
3111 } else
3112 rx_ring_size = bp->rx_ring_size;
3112 3113
3113 /* Common */ 3114 /* Common */
3114 sb = &bnx2x_fp(bp, index, status_blk); 3115 sb = &bnx2x_fp(bp, index, status_blk);