jme: remove open-coded skb_cow_head.
authorfrançois romieu <romieu@fr.zoreil.com>
Sat, 29 Mar 2014 11:26:26 +0000 (12:26 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 29 Mar 2014 21:49:47 +0000 (17:49 -0400)
Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Cc: Guo-Fu Tseng <cooldavid@cooldavid.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/jme.c

index 14ff8d64257da5e6ea0b63eb2f8f67dc192c7e55..b0c6050479eb460ae306cccaa93926f738e64c2e 100644 (file)
@@ -2053,19 +2053,6 @@ jme_map_tx_skb(struct jme_adapter *jme, struct sk_buff *skb, int idx)
 
 }
 
-static int
-jme_expand_header(struct jme_adapter *jme, struct sk_buff *skb)
-{
-       if (unlikely(skb_shinfo(skb)->gso_size &&
-                       skb_header_cloned(skb) &&
-                       pskb_expand_head(skb, 0, 0, GFP_ATOMIC))) {
-               dev_kfree_skb_any(skb);
-               return -1;
-       }
-
-       return 0;
-}
-
 static int
 jme_tx_tso(struct sk_buff *skb, __le16 *mss, u8 *flags)
 {
@@ -2225,7 +2212,8 @@ jme_start_xmit(struct sk_buff *skb, struct net_device *netdev)
        struct jme_adapter *jme = netdev_priv(netdev);
        int idx;
 
-       if (unlikely(jme_expand_header(jme, skb))) {
+       if (unlikely(skb_is_gso(skb) && skb_cow_head(skb, 0))) {
+               dev_kfree_skb_any(skb);
                ++(NET_STAT(jme).tx_dropped);
                return NETDEV_TX_OK;
        }