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)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Mar 2014 20:22:13 +0000 (16:22 -0400)
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>
drivers/net/bonding/bond_3ad.c
drivers/net/bonding/bond_alb.c
drivers/net/bonding/bond_main.c

index a2ef3f72de8847d850559672620a890931817b31..dee2a84a2929e1380ac679e3785323781824faf2 100644 (file)
@@ -2479,7 +2479,7 @@ out:
        return NETDEV_TX_OK;
 err_free:
        /* no suitable interface, frame not sent */
-       kfree_skb(skb);
+       dev_kfree_skb_any(skb);
        goto out;
 }
 
index aaeeacf767f24e128ff75a5c54fb25ef4bcb8a58..9cf836b67b154c6f12fedd15a21595a57a2075a4 100644 (file)
@@ -1464,7 +1464,7 @@ int bond_alb_xmit(struct sk_buff *skb, struct net_device *bond_dev)
        }
 
        /* no suitable interface, frame not sent */
-       kfree_skb(skb);
+       dev_kfree_skb_any(skb);
 out:
        return NETDEV_TX_OK;
 }
index 324389b44915fbd6c41a52853974355d220eb464..e717db301d4659b5dc4cd0255e57bd2d5157435a 100644 (file)
@@ -3548,7 +3548,7 @@ static void bond_xmit_slave_id(struct bonding *bond, struct sk_buff *skb, int sl
                }
        }
        /* no slave that can tx has been found */
-       kfree_skb(skb);
+       dev_kfree_skb_any(skb);
 }
 
 /**
@@ -3624,7 +3624,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;
 }
@@ -3667,7 +3667,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;
 }
@@ -3754,7 +3754,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;
        }
 }
@@ -3775,7 +3775,7 @@ static netdev_tx_t bond_start_xmit(struct sk_buff *skb, struct net_device *dev)
        if (bond_has_slaves(bond))
                ret = __bond_start_xmit(skb, dev);
        else
-               kfree_skb(skb);
+               dev_kfree_skb_any(skb);
        rcu_read_unlock();
 
        return ret;