bonding: two small fixes for IPoIB support
Jay Vosburgh [Mon, 15 Oct 2007 23:44:27 +0000 (16:44 -0700)]
Two small fixes to IPoIB support for bonding:

1- copy header_ops from slave to bonding for IPoIB slaves
2- move release and destroy logic to UNREGISTER from GOING_DOWN
   notifier to avoid double release

Set bonding to version 3.2.1.

Signed-off-by: Moni Shoua <monis at voltaire.com>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>

drivers/net/bonding/bond_main.c
drivers/net/bonding/bonding.h

index db80f24..6f85cc3 100644 (file)
@@ -1263,6 +1263,7 @@ static void bond_setup_by_slave(struct net_device *bond_dev,
        struct bonding *bond = bond_dev->priv;
 
        bond_dev->neigh_setup           = slave_dev->neigh_setup;
+       bond_dev->header_ops            = slave_dev->header_ops;
 
        bond_dev->type              = slave_dev->type;
        bond_dev->hard_header_len   = slave_dev->hard_header_len;
@@ -3351,7 +3352,10 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave
        switch (event) {
        case NETDEV_UNREGISTER:
                if (bond_dev) {
-                       bond_release(bond_dev, slave_dev);
+                       if (bond->setup_by_slave)
+                               bond_release_and_destroy(bond_dev, slave_dev);
+                       else
+                               bond_release(bond_dev, slave_dev);
                }
                break;
        case NETDEV_CHANGE:
@@ -3366,11 +3370,6 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave
                 * ... Or is it this?
                 */
                break;
-       case NETDEV_GOING_DOWN:
-               dprintk("slave %s is going down\n", slave_dev->name);
-               if (bond->setup_by_slave)
-                       bond_release_and_destroy(bond_dev, slave_dev);
-               break;
        case NETDEV_CHANGEMTU:
                /*
                 * TODO: Should slaves be allowed to
index a8bbd56..b818060 100644 (file)
@@ -22,8 +22,8 @@
 #include "bond_3ad.h"
 #include "bond_alb.h"
 
-#define DRV_VERSION    "3.2.0"
-#define DRV_RELDATE    "September 13, 2007"
+#define DRV_VERSION    "3.2.1"
+#define DRV_RELDATE    "October 15, 2007"
 #define DRV_NAME       "bonding"
 #define DRV_DESCRIPTION        "Ethernet Channel Bonding Driver"