Commit 1284cd3a authored by Jay Vosburgh's avatar Jay Vosburgh Committed by Jeff Garzik

bonding: two small fixes for IPoIB support

	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: default avatarJay Vosburgh <fubar@us.ibm.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 369d742d
...@@ -1263,6 +1263,7 @@ static void bond_setup_by_slave(struct net_device *bond_dev, ...@@ -1263,6 +1263,7 @@ static void bond_setup_by_slave(struct net_device *bond_dev,
struct bonding *bond = bond_dev->priv; struct bonding *bond = bond_dev->priv;
bond_dev->neigh_setup = slave_dev->neigh_setup; bond_dev->neigh_setup = slave_dev->neigh_setup;
bond_dev->header_ops = slave_dev->header_ops;
bond_dev->type = slave_dev->type; bond_dev->type = slave_dev->type;
bond_dev->hard_header_len = slave_dev->hard_header_len; 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 ...@@ -3351,7 +3352,10 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave
switch (event) { switch (event) {
case NETDEV_UNREGISTER: case NETDEV_UNREGISTER:
if (bond_dev) { 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; break;
case NETDEV_CHANGE: case NETDEV_CHANGE:
...@@ -3366,11 +3370,6 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave ...@@ -3366,11 +3370,6 @@ static int bond_slave_netdev_event(unsigned long event, struct net_device *slave
* ... Or is it this? * ... Or is it this?
*/ */
break; 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: case NETDEV_CHANGEMTU:
/* /*
* TODO: Should slaves be allowed to * TODO: Should slaves be allowed to
......
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
#include "bond_3ad.h" #include "bond_3ad.h"
#include "bond_alb.h" #include "bond_alb.h"
#define DRV_VERSION "3.2.0" #define DRV_VERSION "3.2.1"
#define DRV_RELDATE "September 13, 2007" #define DRV_RELDATE "October 15, 2007"
#define DRV_NAME "bonding" #define DRV_NAME "bonding"
#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver" #define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment