]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bnx2x: put start bd csum in separate function
authorDmitry Kravkov <dmitry@broadcom.com>
Tue, 14 Jun 2011 01:33:02 +0000 (01:33 +0000)
committerBob Picco <bob.picco@oracle.com>
Thu, 2 Feb 2012 23:03:26 +0000 (18:03 -0500)
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Vladislav Zolotarov <vladz@broadcom.com>
Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
Signed-off-by: David S. Miller <davem@conan.davemloft.net>
(cherry picked from commit 93ef5c02a436000d6b90ff59c9d25563000eee7f)

drivers/net/bnx2x/bnx2x_cmn.c

index 7f3941aea6d499a4bff97958c9cdbc38d0f9c2c0..f75dec9680efd11f2e6ad234f32358748308c4ba 100644 (file)
@@ -2135,6 +2135,24 @@ static inline  u8 bnx2x_set_pbd_csum_e2(struct bnx2x *bp, struct sk_buff *skb,
                                sizeof(struct udphdr) - skb->data;
 }
 
+static inline void bnx2x_set_sbd_csum(struct bnx2x *bp, struct sk_buff *skb,
+       struct eth_tx_start_bd *tx_start_bd, u32 xmit_type)
+{
+
+       tx_start_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_L4_CSUM;
+
+       if (xmit_type & XMIT_CSUM_V4)
+               tx_start_bd->bd_flags.as_bitfield |=
+                                       ETH_TX_BD_FLAGS_IP_CSUM;
+       else
+               tx_start_bd->bd_flags.as_bitfield |=
+                                       ETH_TX_BD_FLAGS_IPV6;
+
+       if (!(xmit_type & XMIT_CSUM_TCP))
+               tx_start_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_IS_UDP;
+
+}
+
 /**
  * bnx2x_set_pbd_csum - update PBD with checksum and return header length
  *
@@ -2306,20 +2324,8 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
        /* turn on parsing and get a BD */
        bd_prod = TX_BD(NEXT_TX_IDX(bd_prod));
 
-       if (xmit_type & XMIT_CSUM) {
-               tx_start_bd->bd_flags.as_bitfield |= ETH_TX_BD_FLAGS_L4_CSUM;
-
-               if (xmit_type & XMIT_CSUM_V4)
-                       tx_start_bd->bd_flags.as_bitfield |=
-                                               ETH_TX_BD_FLAGS_IP_CSUM;
-               else
-                       tx_start_bd->bd_flags.as_bitfield |=
-                                               ETH_TX_BD_FLAGS_IPV6;
-
-               if (!(xmit_type & XMIT_CSUM_TCP))
-                       tx_start_bd->bd_flags.as_bitfield |=
-                                               ETH_TX_BD_FLAGS_IS_UDP;
-       }
+       if (xmit_type & XMIT_CSUM)
+               bnx2x_set_sbd_csum(bp, skb, tx_start_bd, xmit_type);
 
        if (CHIP_IS_E2(bp)) {
                pbd_e2 = &fp->tx_desc_ring[bd_prod].parse_bd_e2;