diff options
author | Vivien Didelot <vivien.didelot@savoirfairelinux.com> | 2017-06-01 16:07:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-06-01 17:34:56 -0400 |
commit | fe47d563065c91cd30088d9b118b79d44905be6f (patch) | |
tree | a45ba1a54b080a3a71e4650f03d57ac3de3767e8 /net/dsa/tag_edsa.c | |
parent | 5470979585d81271d4338c2accfd5e71dafa4af6 (diff) | |
download | linux-fe47d563065c91cd30088d9b118b79d44905be6f.tar.gz linux-fe47d563065c91cd30088d9b118b79d44905be6f.tar.bz2 linux-fe47d563065c91cd30088d9b118b79d44905be6f.zip |
net: dsa: factor skb freeing on xmit
As of a86d8becc3f0 ("net: dsa: Factor bottom tag receive functions"),
the rcv caller frees the original SKB in case or error.
Be symmetric with that and make the xmit caller do the same.
At the same time, fix the checkpatch NULL comparison check:
CHECK: Comparison to NULL could be written "!nskb"
#208: FILE: net/dsa/tag_trailer.c:35:
+ if (nskb == NULL)
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa/tag_edsa.c')
-rw-r--r-- | net/dsa/tag_edsa.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/net/dsa/tag_edsa.c b/net/dsa/tag_edsa.c index a7eed1d43d80..67a9d26f9075 100644 --- a/net/dsa/tag_edsa.c +++ b/net/dsa/tag_edsa.c @@ -30,7 +30,7 @@ static struct sk_buff *edsa_xmit(struct sk_buff *skb, struct net_device *dev) */ if (skb->protocol == htons(ETH_P_8021Q)) { if (skb_cow_head(skb, DSA_HLEN) < 0) - goto out_free; + return NULL; skb_push(skb, DSA_HLEN); memmove(skb->data, skb->data + DSA_HLEN, 2 * ETH_ALEN); @@ -55,7 +55,7 @@ static struct sk_buff *edsa_xmit(struct sk_buff *skb, struct net_device *dev) } } else { if (skb_cow_head(skb, EDSA_HLEN) < 0) - goto out_free; + return NULL; skb_push(skb, EDSA_HLEN); memmove(skb->data, skb->data + EDSA_HLEN, 2 * ETH_ALEN); @@ -75,10 +75,6 @@ static struct sk_buff *edsa_xmit(struct sk_buff *skb, struct net_device *dev) } return skb; - -out_free: - kfree_skb(skb); - return NULL; } static struct sk_buff *edsa_rcv(struct sk_buff *skb, struct net_device *dev, |