]> git.hungrycats.org Git - linux/commitdiff
bonding: Call dev_kfree_skby_any instead of kfree_skb.
authorEric W. Biederman <ebiederm@xmission.com>
Tue, 11 Mar 2014 21:16:58 +0000 (14:16 -0700)
committerJiri Slaby <jslaby@suse.cz>
Mon, 27 Apr 2015 08:54:53 +0000 (10:54 +0200)
commit 2bb77ab42a6a40162a367b80394b96bb756ad5f1 upstream.

Replace kfree_skb with dev_kfree_skb_any in functions that can
be called in hard irq and other contexts.

Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
drivers/net/bonding/bond_3ad.c
drivers/net/bonding/bond_alb.c
drivers/net/bonding/bond_main.c

index b3c22527b938546cc94fa00840063cf44c04dd61..13c3ca0b7977215a6ec10610860e7420b2b0e877 100644 (file)
@@ -2477,7 +2477,7 @@ out:
        read_unlock(&bond->lock);
        if (res) {
                /* no suitable interface, frame not sent */
-               kfree_skb(skb);
+               dev_kfree_skb_any(skb);
        }
 
        return NETDEV_TX_OK;
index 71adb692e4576bf93339b360447ef643e02504a1..175f266ce82ed0d09f82d6a18d6006cd75336ef3 100644 (file)
@@ -1447,7 +1447,7 @@ int bond_alb_xmit(struct sk_buff *skb, struct net_device *bond_dev)
        read_unlock(&bond->lock);
        if (res) {
                /* no suitable interface, frame not sent */
-               kfree_skb(skb);
+               dev_kfree_skb_any(skb);
        }
 
        return NETDEV_TX_OK;
index f5a8b9c83ca62616b1e828b636a8c5f89b3dc8e1..5f95537d48964eb97a0ee39e39914e50e48c9224 100644 (file)
@@ -3659,7 +3659,7 @@ void bond_xmit_slave_id(struct bonding *bond, struct sk_buff *skb, int slave_id)
                }
        }
        /* no slave that can tx has been found */
-       kfree_skb(skb);
+       dev_kfree_skb_any(skb);
 }
 
 static int bond_xmit_roundrobin(struct sk_buff *skb, struct net_device *bond_dev)
@@ -3702,7 +3702,7 @@ static int bond_xmit_activebackup(struct sk_buff *skb, struct net_device *bond_d
        if (slave)
                bond_dev_queue_xmit(bond, skb, slave->dev);
        else
-               kfree_skb(skb);
+               dev_kfree_skb_any(skb);
 
        return NETDEV_TX_OK;
 }
@@ -3746,7 +3746,7 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev)
        if (slave && IS_UP(slave->dev) && slave->link == BOND_LINK_UP)
                bond_dev_queue_xmit(bond, skb, slave->dev);
        else
-               kfree_skb(skb);
+               dev_kfree_skb_any(skb);
 
        return NETDEV_TX_OK;
 }
@@ -3851,7 +3851,7 @@ static netdev_tx_t __bond_start_xmit(struct sk_buff *skb, struct net_device *dev
                pr_err("%s: Error: Unknown bonding mode %d\n",
                       dev->name, bond->params.mode);
                WARN_ON_ONCE(1);
-               kfree_skb(skb);
+               dev_kfree_skb_any(skb);
                return NETDEV_TX_OK;
        }
 }
@@ -3872,7 +3872,7 @@ static netdev_tx_t bond_start_xmit(struct sk_buff *skb, struct net_device *dev)
        if (!list_empty(&bond->slave_list))
                ret = __bond_start_xmit(skb, dev);
        else
-               kfree_skb(skb);
+               dev_kfree_skb_any(skb);
        rcu_read_unlock();
 
        return ret;