Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
[firefly-linux-kernel-4.4.55.git] / net / mac802154 / tx.c
index 1a4df39c722e3d0b871105ea0ff30099a1ed37a1..4e09d070995a129a065b33eb15c0c729913b4365 100644 (file)
@@ -85,6 +85,7 @@ netdev_tx_t mac802154_tx(struct mac802154_priv *priv, struct sk_buff *skb,
 
        if (!(priv->phy->channels_supported[page] & (1 << chan))) {
                WARN_ON(1);
+               kfree_skb(skb);
                return NETDEV_TX_OK;
        }
 
@@ -98,13 +99,15 @@ netdev_tx_t mac802154_tx(struct mac802154_priv *priv, struct sk_buff *skb,
        }
 
        if (skb_cow_head(skb, priv->hw.extra_tx_headroom)) {
-               dev_kfree_skb(skb);
+               kfree_skb(skb);
                return NETDEV_TX_OK;
        }
 
        work = kzalloc(sizeof(struct xmit_work), GFP_ATOMIC);
-       if (!work)
+       if (!work) {
+               kfree_skb(skb);
                return NETDEV_TX_BUSY;
+       }
 
        INIT_WORK(&work->work, mac802154_xmit_worker);
        work->skb = skb;