aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorMichal Schmidt <mschmidt@redhat.com>2015-04-28 05:34:22 -0400
committerDavid S. Miller <davem@davemloft.net>2015-04-29 14:48:35 -0400
commit7e6b4d440b0ae9062b84dfb417ea6d51a45dab76 (patch)
treeccfc1cbabb682704fc3175fc3231642f18d63e74 /drivers/net
parentd9b9e860cef1d904832bc6e92e444adfeabe49e9 (diff)
bnx2x: merge fp->disable_tpa with fp->mode
It is simpler to have the TPA mode as one three-state variable. Signed-off-by: Michal Schmidt <mschmidt@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x.h2
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c26
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h2
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c4
-rw-r--r--drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c2
5 files changed, 18 insertions, 18 deletions
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
index 355d5fea5be9..2a41604cdd0e 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
@@ -521,6 +521,7 @@ struct bnx2x_fp_txdata {
521}; 521};
522 522
523enum bnx2x_tpa_mode_t { 523enum bnx2x_tpa_mode_t {
524 TPA_MODE_DISABLED,
524 TPA_MODE_LRO, 525 TPA_MODE_LRO,
525 TPA_MODE_GRO 526 TPA_MODE_GRO
526}; 527};
@@ -589,7 +590,6 @@ struct bnx2x_fastpath {
589 590
590 /* TPA related */ 591 /* TPA related */
591 struct bnx2x_agg_info *tpa_info; 592 struct bnx2x_agg_info *tpa_info;
592 u8 disable_tpa;
593#ifdef BNX2X_STOP_ON_ERROR 593#ifdef BNX2X_STOP_ON_ERROR
594 u64 tpa_queue_used; 594 u64 tpa_queue_used;
595#endif 595#endif
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
index dcdbd00d0259..84612b082b86 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
@@ -947,10 +947,10 @@ static int bnx2x_rx_int(struct bnx2x_fastpath *fp, int budget)
947 u16 frag_size, pages; 947 u16 frag_size, pages;
948#ifdef BNX2X_STOP_ON_ERROR 948#ifdef BNX2X_STOP_ON_ERROR
949 /* sanity check */ 949 /* sanity check */
950 if (fp->disable_tpa && 950 if (fp->mode == TPA_MODE_DISABLED &&
951 (CQE_TYPE_START(cqe_fp_type) || 951 (CQE_TYPE_START(cqe_fp_type) ||
952 CQE_TYPE_STOP(cqe_fp_type))) 952 CQE_TYPE_STOP(cqe_fp_type)))
953 BNX2X_ERR("START/STOP packet while disable_tpa type %x\n", 953 BNX2X_ERR("START/STOP packet while TPA disabled, type %x\n",
954 CQE_TYPE(cqe_fp_type)); 954 CQE_TYPE(cqe_fp_type));
955#endif 955#endif
956 956
@@ -1396,7 +1396,7 @@ void bnx2x_init_rx_rings(struct bnx2x *bp)
1396 DP(NETIF_MSG_IFUP, 1396 DP(NETIF_MSG_IFUP,
1397 "mtu %d rx_buf_size %d\n", bp->dev->mtu, fp->rx_buf_size); 1397 "mtu %d rx_buf_size %d\n", bp->dev->mtu, fp->rx_buf_size);
1398 1398
1399 if (!fp->disable_tpa) { 1399 if (fp->mode != TPA_MODE_DISABLED) {
1400 /* Fill the per-aggregation pool */ 1400 /* Fill the per-aggregation pool */
1401 for (i = 0; i < MAX_AGG_QS(bp); i++) { 1401 for (i = 0; i < MAX_AGG_QS(bp); i++) {
1402 struct bnx2x_agg_info *tpa_info = 1402 struct bnx2x_agg_info *tpa_info =
@@ -1410,7 +1410,7 @@ void bnx2x_init_rx_rings(struct bnx2x *bp)
1410 BNX2X_ERR("Failed to allocate TPA skb pool for queue[%d] - disabling TPA on this queue!\n", 1410 BNX2X_ERR("Failed to allocate TPA skb pool for queue[%d] - disabling TPA on this queue!\n",
1411 j); 1411 j);
1412 bnx2x_free_tpa_pool(bp, fp, i); 1412 bnx2x_free_tpa_pool(bp, fp, i);
1413 fp->disable_tpa = 1; 1413 fp->mode = TPA_MODE_DISABLED;
1414 break; 1414 break;
1415 } 1415 }
1416 dma_unmap_addr_set(first_buf, mapping, 0); 1416 dma_unmap_addr_set(first_buf, mapping, 0);
@@ -1438,7 +1438,7 @@ void bnx2x_init_rx_rings(struct bnx2x *bp)
1438 ring_prod); 1438 ring_prod);
1439 bnx2x_free_tpa_pool(bp, fp, 1439 bnx2x_free_tpa_pool(bp, fp,
1440 MAX_AGG_QS(bp)); 1440 MAX_AGG_QS(bp));
1441 fp->disable_tpa = 1; 1441 fp->mode = TPA_MODE_DISABLED;
1442 ring_prod = 0; 1442 ring_prod = 0;
1443 break; 1443 break;
1444 } 1444 }
@@ -1560,7 +1560,7 @@ static void bnx2x_free_rx_skbs(struct bnx2x *bp)
1560 1560
1561 bnx2x_free_rx_bds(fp); 1561 bnx2x_free_rx_bds(fp);
1562 1562
1563 if (!fp->disable_tpa) 1563 if (fp->mode != TPA_MODE_DISABLED)
1564 bnx2x_free_tpa_pool(bp, fp, MAX_AGG_QS(bp)); 1564 bnx2x_free_tpa_pool(bp, fp, MAX_AGG_QS(bp));
1565 } 1565 }
1566} 1566}
@@ -2477,19 +2477,19 @@ static void bnx2x_bz_fp(struct bnx2x *bp, int index)
2477 /* set the tpa flag for each queue. The tpa flag determines the queue 2477 /* set the tpa flag for each queue. The tpa flag determines the queue
2478 * minimal size so it must be set prior to queue memory allocation 2478 * minimal size so it must be set prior to queue memory allocation
2479 */ 2479 */
2480 fp->disable_tpa = !(bp->flags & TPA_ENABLE_FLAG ||
2481 (bp->flags & GRO_ENABLE_FLAG &&
2482 bnx2x_mtu_allows_gro(bp->dev->mtu)));
2483 if (bp->flags & TPA_ENABLE_FLAG) 2480 if (bp->flags & TPA_ENABLE_FLAG)
2484 fp->mode = TPA_MODE_LRO; 2481 fp->mode = TPA_MODE_LRO;
2485 else if (bp->flags & GRO_ENABLE_FLAG) 2482 else if (bp->flags & GRO_ENABLE_FLAG &&
2483 bnx2x_mtu_allows_gro(bp->dev->mtu))
2486 fp->mode = TPA_MODE_GRO; 2484 fp->mode = TPA_MODE_GRO;
2485 else
2486 fp->mode = TPA_MODE_DISABLED;
2487 2487
2488 /* We don't want TPA if it's disabled in bp 2488 /* We don't want TPA if it's disabled in bp
2489 * or if this is an FCoE L2 ring. 2489 * or if this is an FCoE L2 ring.
2490 */ 2490 */
2491 if (bp->disable_tpa || IS_FCOE_FP(fp)) 2491 if (bp->disable_tpa || IS_FCOE_FP(fp))
2492 fp->disable_tpa = 1; 2492 fp->mode = TPA_MODE_DISABLED;
2493} 2493}
2494 2494
2495int bnx2x_load_cnic(struct bnx2x *bp) 2495int bnx2x_load_cnic(struct bnx2x *bp)
@@ -2610,7 +2610,7 @@ int bnx2x_nic_load(struct bnx2x *bp, int load_mode)
2610 /* 2610 /*
2611 * Zero fastpath structures preserving invariants like napi, which are 2611 * Zero fastpath structures preserving invariants like napi, which are
2612 * allocated only once, fp index, max_cos, bp pointer. 2612 * allocated only once, fp index, max_cos, bp pointer.
2613 * Also set fp->disable_tpa and txdata_ptr. 2613 * Also set fp->mode and txdata_ptr.
2614 */ 2614 */
2615 DP(NETIF_MSG_IFUP, "num queues: %d", bp->num_queues); 2615 DP(NETIF_MSG_IFUP, "num queues: %d", bp->num_queues);
2616 for_each_queue(bp, i) 2616 for_each_queue(bp, i)
@@ -4545,7 +4545,7 @@ alloc_mem_err:
4545 * In these cases we disable the queue 4545 * In these cases we disable the queue
4546 * Min size is different for OOO, TPA and non-TPA queues 4546 * Min size is different for OOO, TPA and non-TPA queues
4547 */ 4547 */
4548 if (ring_size < (fp->disable_tpa ? 4548 if (ring_size < (fp->mode == TPA_MODE_DISABLED ?
4549 MIN_RX_SIZE_NONTPA : MIN_RX_SIZE_TPA)) { 4549 MIN_RX_SIZE_NONTPA : MIN_RX_SIZE_TPA)) {
4550 /* release memory allocated for this queue */ 4550 /* release memory allocated for this queue */
4551 bnx2x_free_fp_mem_at(bp, index); 4551 bnx2x_free_fp_mem_at(bp, index);
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
index adcacda7af7b..d7a71758e876 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
@@ -969,7 +969,7 @@ static inline void bnx2x_free_rx_sge_range(struct bnx2x *bp,
969{ 969{
970 int i; 970 int i;
971 971
972 if (fp->disable_tpa) 972 if (fp->mode == TPA_MODE_DISABLED)
973 return; 973 return;
974 974
975 for (i = 0; i < last; i++) 975 for (i = 0; i < last; i++)
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
index 2d067c937bd1..64ea5adf72eb 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
@@ -3128,7 +3128,7 @@ static unsigned long bnx2x_get_q_flags(struct bnx2x *bp,
3128 __set_bit(BNX2X_Q_FLG_FORCE_DEFAULT_PRI, &flags); 3128 __set_bit(BNX2X_Q_FLG_FORCE_DEFAULT_PRI, &flags);
3129 } 3129 }
3130 3130
3131 if (!fp->disable_tpa) { 3131 if (fp->mode != TPA_MODE_DISABLED) {
3132 __set_bit(BNX2X_Q_FLG_TPA, &flags); 3132 __set_bit(BNX2X_Q_FLG_TPA, &flags);
3133 __set_bit(BNX2X_Q_FLG_TPA_IPV6, &flags); 3133 __set_bit(BNX2X_Q_FLG_TPA_IPV6, &flags);
3134 if (fp->mode == TPA_MODE_GRO) 3134 if (fp->mode == TPA_MODE_GRO)
@@ -3176,7 +3176,7 @@ static void bnx2x_pf_rx_q_prep(struct bnx2x *bp,
3176 u16 sge_sz = 0; 3176 u16 sge_sz = 0;
3177 u16 tpa_agg_size = 0; 3177 u16 tpa_agg_size = 0;
3178 3178
3179 if (!fp->disable_tpa) { 3179 if (fp->mode != TPA_MODE_DISABLED) {
3180 pause->sge_th_lo = SGE_TH_LO(bp); 3180 pause->sge_th_lo = SGE_TH_LO(bp);
3181 pause->sge_th_hi = SGE_TH_HI(bp); 3181 pause->sge_th_hi = SGE_TH_HI(bp);
3182 3182
diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
index 15b2d1647560..06b8c0d8fd3b 100644
--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_vfpf.c
@@ -594,7 +594,7 @@ int bnx2x_vfpf_setup_q(struct bnx2x *bp, struct bnx2x_fastpath *fp,
594 bnx2x_vfpf_prep(bp, &req->first_tlv, CHANNEL_TLV_SETUP_Q, sizeof(*req)); 594 bnx2x_vfpf_prep(bp, &req->first_tlv, CHANNEL_TLV_SETUP_Q, sizeof(*req));
595 595
596 /* select tpa mode to request */ 596 /* select tpa mode to request */
597 if (!fp->disable_tpa) { 597 if (fp->mode != TPA_MODE_DISABLED) {
598 flags |= VFPF_QUEUE_FLG_TPA; 598 flags |= VFPF_QUEUE_FLG_TPA;
599 flags |= VFPF_QUEUE_FLG_TPA_IPV6; 599 flags |= VFPF_QUEUE_FLG_TPA_IPV6;
600 if (fp->mode == TPA_MODE_GRO) 600 if (fp->mode == TPA_MODE_GRO)