struct sk_buff *skb, u32 tx_flags, u8 *hdr_len)
 {
        struct e1000_adv_tx_context_desc *context_desc;
-       unsigned int i;
-       int err;
        struct igbvf_buffer *buffer_info;
        u32 info = 0, tu_cmd = 0;
        u32 mss_l4len_idx, l4len;
+       unsigned int i;
+       int err;
+
        *hdr_len = 0;
 
-       if (skb_header_cloned(skb)) {
-               err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC);
-               if (err) {
-                       dev_err(&adapter->pdev->dev,
-                               "igbvf_tso returning an error\n");
-                       return err;
-               }
+       err = skb_cow_head(skb, 0);
+       if (err < 0) {
+               dev_err(&adapter->pdev->dev, "igbvf_tso returning an error\n");
+               return err;
        }
 
        l4len = tcp_hdrlen(skb);