net: add skb_[inner_]tcp_all_headers helpers
[platform/kernel/linux-starfive.git] / drivers / net / ethernet / broadcom / bnx2x / bnx2x_cmn.c
index 5729a5a..712b559 100644 (file)
@@ -3421,12 +3421,9 @@ static int bnx2x_pkt_req_lin(struct bnx2x *bp, struct sk_buff *skb,
 
                        /* Headers length */
                        if (xmit_type & XMIT_GSO_ENC)
-                               hlen = (int)(skb_inner_transport_header(skb) -
-                                            skb->data) +
-                                            inner_tcp_hdrlen(skb);
+                               hlen = skb_inner_tcp_all_headers(skb);
                        else
-                               hlen = (int)(skb_transport_header(skb) -
-                                            skb->data) + tcp_hdrlen(skb);
+                               hlen = skb_tcp_all_headers(skb);
 
                        /* Amount of data (w/o headers) on linear part of SKB*/
                        first_bd_sz = skb_headlen(skb) - hlen;
@@ -3534,15 +3531,13 @@ static u8 bnx2x_set_pbd_csum_enc(struct bnx2x *bp, struct sk_buff *skb,
                        ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW_SHIFT) &
                        ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW;
 
-               return skb_inner_transport_header(skb) +
-                       inner_tcp_hdrlen(skb) - skb->data;
+               return skb_inner_tcp_all_headers(skb);
        }
 
        /* We support checksum offload for TCP and UDP only.
         * No need to pass the UDP header length - it's a constant.
         */
-       return skb_inner_transport_header(skb) +
-               sizeof(struct udphdr) - skb->data;
+       return skb_inner_transport_offset(skb) + sizeof(struct udphdr);
 }
 
 /**
@@ -3568,12 +3563,12 @@ static u8 bnx2x_set_pbd_csum_e2(struct bnx2x *bp, struct sk_buff *skb,
                        ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW_SHIFT) &
                        ETH_TX_PARSE_BD_E2_TCP_HDR_LENGTH_DW;
 
-               return skb_transport_header(skb) + tcp_hdrlen(skb) - skb->data;
+               return skb_tcp_all_headers(skb);
        }
        /* We support checksum offload for TCP and UDP only.
         * No need to pass the UDP header length - it's a constant.
         */
-       return skb_transport_header(skb) + sizeof(struct udphdr) - skb->data;
+       return skb_transport_offset(skb) + sizeof(struct udphdr);
 }
 
 /* set FW indication according to inner or outer protocols if tunneled */