]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnx2x: remove gro workaround
authorDmitry Kravkov <dmitry@broadcom.com>
Mon, 23 Apr 2012 03:05:11 +0000 (03:05 +0000)
committerJoe Jin <joe.jin@oracle.com>
Wed, 29 Aug 2012 00:22:02 +0000 (08:22 +0800)
Removes GRO workaround, as issue is fixed in FW 7.2.51.

(cherry picked from commit 94b2f9ba4c87d155446957ee413e34298cbe7554)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Barak Witkowski <barak@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.h
drivers/net/bnx2x/bnx2x_cmn.c
drivers/net/bnx2x/bnx2x_cmn.h
drivers/net/bnx2x/bnx2x_main.c

index 49bf41f9d8b38d494344f089848831fac76d7aad..710d732680663522995561fac8f4055aed212531 100644 (file)
@@ -348,7 +348,6 @@ union db_prod {
 #define SGE_PAGE_SIZE          PAGE_SIZE
 #define SGE_PAGE_SHIFT         PAGE_SHIFT
 #define SGE_PAGE_ALIGN(addr)   PAGE_ALIGN((typeof(PAGE_SIZE))(addr))
-#define SGE_PAGES              (SGE_PAGE_SIZE * PAGES_PER_SGE)
 
 /* SGE ring related macros */
 #define NUM_RX_SGE_PAGES       2
@@ -1239,7 +1238,6 @@ struct bnx2x {
 #define ETH_MAX_JUMBO_PACKET_SIZE      9600
 /* TCP with Timestamp Option (32) + IPv6 (40) */
 #define ETH_MAX_TPA_HEADER_SIZE                72
-#define ETH_MIN_TPA_HEADER_SIZE                40
 
        /* Max supported alignment is 256 (8 shift) */
 #define BNX2X_RX_ALIGN_SHIFT           min(8, L1_CACHE_SHIFT)
@@ -1362,8 +1360,6 @@ struct bnx2x {
 
        u8                      wol;
 
-       bool                    gro_check;
-
        int                     rx_ring_size;
 
        u16                     tx_quick_cons_trip_int;
index da5e569cb0a08bf9801f6b360f9f60735289b475..4ef2f3ee6efa75ff18180da262e7eb43d4c4cf10 100644 (file)
@@ -316,16 +316,6 @@ static void bnx2x_tpa_start(struct bnx2x_fastpath *fp, u16 queue,
                u16 gro_size = le16_to_cpu(cqe->pkt_len_or_gro_seg_len);
                tpa_info->full_page =
                        SGE_PAGE_SIZE * PAGES_PER_SGE / gro_size * gro_size;
-               /*
-                * FW 7.2.16 BUG workaround:
-                * if SGE size is (exactly) multiple gro_size
-                * fw will place one less frag on SGE.
-                * the calculation is done only for potentially
-                * dangerous MTUs.
-                */
-               if (unlikely(bp->gro_check))
-                       if (!(SGE_PAGE_SIZE * PAGES_PER_SGE % gro_size))
-                               tpa_info->full_page -= gro_size;
                tpa_info->gro_size = gro_size;
        }
 
@@ -3503,8 +3493,6 @@ int bnx2x_change_mtu(struct net_device *dev, int new_mtu)
         */
        dev->mtu = new_mtu;
 
-       bp->gro_check = bnx2x_need_gro_check(new_mtu);
-
        return bnx2x_reload_if_running(dev);
 }
 
index a77aad2c5b15bcc5777a840043d1a63e22d39ab5..83e69512a5ae777472f897354edd6a98aae8cff5 100644 (file)
@@ -1544,13 +1544,6 @@ static inline bool bnx2x_mtu_allows_gro(int mtu)
         */
        return mtu <= SGE_PAGE_SIZE && (U_ETH_SGL_SIZE * fpp) <= MAX_SKB_FRAGS;
 }
-
-static inline bool bnx2x_need_gro_check(int mtu)
-{
-       return (SGE_PAGES / (mtu - ETH_MAX_TPA_HEADER_SIZE - 1)) !=
-               (SGE_PAGES / (mtu - ETH_MIN_TPA_HEADER_SIZE + 1));
-}
-
 /**
  * bnx2x_bz_fp - zero content of the fastpath structure.
  *
index c8ccdc922d3daab8d836dfd47192d23cca4313d6..770d9cd2e21c5bd7d246d07454f16612fa99506a 100644 (file)
@@ -10713,8 +10713,6 @@ static int __devinit bnx2x_init_bp(struct bnx2x *bp)
        if (CHIP_IS_E3B0(bp))
                bp->max_cos = BNX2X_MULTI_TX_COS_E3B0;
 
-       bp->gro_check = bnx2x_need_gro_check(bp->dev->mtu);
-
        return rc;
 }