netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] bonding: bug fixes for 2.6.26
@ 2008-05-03  0:49 Jay Vosburgh
  2008-05-03  0:49 ` [PATCH 1/4] bonding: Do not call free_netdev for already registered device Jay Vosburgh
  0 siblings, 1 reply; 12+ messages in thread
From: Jay Vosburgh @ 2008-05-03  0:49 UTC (permalink / raw)
  To: netdev; +Cc: Jeff Garzik

	Following are four bonding bug fixes for 2.6.26, as follows:

	1- Fix error unwind logic in bond_create (call
unregister_netdevice instead of free_netdev).

	2- Fix error unwind in bonding_store_bonds (release necessary
locks).

	3- Fix deadlock between bonding_store_bonds and bond_destroy_sysfs
(do sysfs action outside of rtnl).

	4- Fix error unwind in bond_enslave to correctly clear master
setting and IFF_SLAVE.

	Please apply.  Thanks,

	-J

---
	-Jay Vosburgh, IBM Linux Technology Center, fubar@us.ibm.com

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH 1/4] bonding: Do not call free_netdev for already registered device.
  2008-05-03  0:49 [PATCH 0/4] bonding: bug fixes for 2.6.26 Jay Vosburgh
@ 2008-05-03  0:49 ` Jay Vosburgh
  2008-05-03  0:49   ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds Jay Vosburgh
                     ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Jay Vosburgh @ 2008-05-03  0:49 UTC (permalink / raw)
  To: netdev; +Cc: Jeff Garzik, Pavel Emelyanov, Jay Vosburgh

From: Pavel Emelyanov <xemul@openvz.org>

If the call to bond_create_sysfs_entry in bond_create fails, the
proper rollback is to call unregister_netdevice, not free_netdev.
Otherwise - kernel BUG at net/core/dev.c:4057!

Checked with artificial failures injected into bond_create_sysfs_entry.

Pavel's original patch modified by Jay Vosburgh to move code around
for clarity (remove goto-hopping within the unwind block).

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
---
 drivers/net/bonding/bond_main.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 6e91b4b..7ffd819 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4939,7 +4939,9 @@ int bond_create(char *name, struct bond_params *params, struct bonding **newbond
 	if (res < 0) {
 		rtnl_lock();
 		down_write(&bonding_rwsem);
-		goto out_bond;
+		bond_deinit(bond_dev);
+		unregister_netdevice(bond_dev);
+		goto out_rtnl;
 	}
 
 	return 0;
-- 
1.5.2.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds
  2008-05-03  0:49 ` [PATCH 1/4] bonding: Do not call free_netdev for already registered device Jay Vosburgh
@ 2008-05-03  0:49   ` Jay Vosburgh
  2008-05-03  0:49     ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs Jay Vosburgh
  2008-05-03  0:51     ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds David Miller
  2008-05-03  0:51   ` [PATCH 1/4] bonding: Do not call free_netdev for already registered device David Miller
  2008-05-06 16:17   ` Jeff Garzik
  2 siblings, 2 replies; 12+ messages in thread
From: Jay Vosburgh @ 2008-05-03  0:49 UTC (permalink / raw)
  To: netdev; +Cc: Jeff Garzik, Jay Vosburgh

	Fixed an error unwind in bonding_store_bonds that didn't release
the locks it held, and consolidated unwinds into a common block at the
end of the function.  Bug reported by Pavel Emelyanov <xemul@openvz.org>,
who provided a different fix.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
---
 drivers/net/bonding/bond_sysfs.c |   16 ++++++++--------
 1 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/drivers/net/bonding/bond_sysfs.c b/drivers/net/bonding/bond_sysfs.c
index 979c2d0..68c41a0 100644
--- a/drivers/net/bonding/bond_sysfs.c
+++ b/drivers/net/bonding/bond_sysfs.c
@@ -146,29 +146,29 @@ static ssize_t bonding_store_bonds(struct class *cls, const char *buffer, size_t
 						": Unable remove bond %s due to open references.\n",
 						ifname);
 					res = -EPERM;
-					goto out;
+					goto out_unlock;
 				}
 				printk(KERN_INFO DRV_NAME
 					": %s is being deleted...\n",
 					bond->dev->name);
 				bond_destroy(bond);
-				up_write(&bonding_rwsem);
-				rtnl_unlock();
-				goto out;
+				goto out_unlock;
 			}
 
 		printk(KERN_ERR DRV_NAME
 			": unable to delete non-existent bond %s\n", ifname);
 		res = -ENODEV;
-		up_write(&bonding_rwsem);
-		rtnl_unlock();
-		goto out;
+		goto out_unlock;
 	}
 
 err_no_cmd:
 	printk(KERN_ERR DRV_NAME
 		": no command found in bonding_masters. Use +ifname or -ifname.\n");
-	res = -EPERM;
+	return -EPERM;
+
+out_unlock:
+	up_write(&bonding_rwsem);
+	rtnl_unlock();
 
 	/* Always return either count or an error.  If you return 0, you'll
 	 * get called forever, which is bad.
-- 
1.5.2.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs.
  2008-05-03  0:49   ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds Jay Vosburgh
@ 2008-05-03  0:49     ` Jay Vosburgh
  2008-05-03  0:49       ` [PATCH 4/4] bonding: fix enslavement error unwinds Jay Vosburgh
  2008-05-03  0:51       ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs David Miller
  2008-05-03  0:51     ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds David Miller
  1 sibling, 2 replies; 12+ messages in thread
From: Jay Vosburgh @ 2008-05-03  0:49 UTC (permalink / raw)
  To: netdev; +Cc: Jeff Garzik, Pavel Emelyanov

From: Pavel Emelyanov <xemul@openvz.org>

The sysfs layer has an internal protection, that ensures, that
all the process sitting inside ->sore/->show callback exits
before the appropriate entry is unregistered (the calltraces
are rather big, but I can provide them if required).

On the other hand, bonding takes rtnl_lock in
a) the bonding_store_bonds, i.e. in ->store callback,
b) module exit before calling the sysfs unregister routines.

Thus, the classical AB-BA deadlock may occur. To reproduce run
# while :; do modprobe bonding; rmmod bonding; done
and
# while :; do echo '+bond%d' > /sys/class/net/bonding_masters ; done
in parallel.

The fix is to move the bond_destroy_sysfs out of the rtnl_lock,
but _before_ bond_free_all to make sure no bonding devices exist
after module unload.

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Jay Vosburgh <fubar@us.ibm.com>
---
 drivers/net/bonding/bond_main.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 7ffd819..3977760 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -4995,9 +4995,10 @@ err:
 		destroy_workqueue(bond->wq);
 	}
 
+	bond_destroy_sysfs();
+
 	rtnl_lock();
 	bond_free_all();
-	bond_destroy_sysfs();
 	rtnl_unlock();
 out:
 	return res;
@@ -5009,9 +5010,10 @@ static void __exit bonding_exit(void)
 	unregister_netdevice_notifier(&bond_netdev_notifier);
 	unregister_inetaddr_notifier(&bond_inetaddr_notifier);
 
+	bond_destroy_sysfs();
+
 	rtnl_lock();
 	bond_free_all();
-	bond_destroy_sysfs();
 	rtnl_unlock();
 }
 
-- 
1.5.2.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH 4/4] bonding: fix enslavement error unwinds
  2008-05-03  0:49     ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs Jay Vosburgh
@ 2008-05-03  0:49       ` Jay Vosburgh
  2008-05-03  0:52         ` David Miller
  2008-05-03  0:51       ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs David Miller
  1 sibling, 1 reply; 12+ messages in thread
From: Jay Vosburgh @ 2008-05-03  0:49 UTC (permalink / raw)
  To: netdev; +Cc: Jeff Garzik, Jay Vosburgh

	For commit c2edacf80e155ef54ae4774379d461b60896bc2e, two steps
were rearranged in the enslavement process: netdev_set_master is now
before the call to dev_open to open the slave.

	This patch updates the error cases and unwind process at the
end of bond_enslave to match the new order.  Without this patch, it is
possible for the enslavement to fail, but leave the slave with IFF_SLAVE
set in its flags.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
---
 drivers/net/bonding/bond_main.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 3977760..b99ccd2 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1425,13 +1425,13 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 	res = netdev_set_master(slave_dev, bond_dev);
 	if (res) {
 		dprintk("Error %d calling netdev_set_master\n", res);
-		goto err_close;
+		goto err_restore_mac;
 	}
 	/* open the slave since the application closed it */
 	res = dev_open(slave_dev);
 	if (res) {
 		dprintk("Openning slave %s failed\n", slave_dev->name);
-		goto err_restore_mac;
+		goto err_unset_master;
 	}
 
 	new_slave->dev = slave_dev;
@@ -1444,7 +1444,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 		 */
 		res = bond_alb_init_slave(bond, new_slave);
 		if (res) {
-			goto err_unset_master;
+			goto err_close;
 		}
 	}
 
@@ -1619,7 +1619,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 
 	res = bond_create_slave_symlinks(bond_dev, slave_dev);
 	if (res)
-		goto err_unset_master;
+		goto err_close;
 
 	printk(KERN_INFO DRV_NAME
 	       ": %s: enslaving %s as a%s interface with a%s link.\n",
@@ -1631,12 +1631,12 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 	return 0;
 
 /* Undo stages on error */
-err_unset_master:
-	netdev_set_master(slave_dev, NULL);
-
 err_close:
 	dev_close(slave_dev);
 
+err_unset_master:
+	netdev_set_master(slave_dev, NULL);
+
 err_restore_mac:
 	if (!bond->params.fail_over_mac) {
 		memcpy(addr.sa_data, new_slave->perm_hwaddr, ETH_ALEN);
-- 
1.5.2.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/4] bonding: Do not call free_netdev for already registered device.
  2008-05-03  0:49 ` [PATCH 1/4] bonding: Do not call free_netdev for already registered device Jay Vosburgh
  2008-05-03  0:49   ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds Jay Vosburgh
@ 2008-05-03  0:51   ` David Miller
  2008-05-06 16:17   ` Jeff Garzik
  2 siblings, 0 replies; 12+ messages in thread
From: David Miller @ 2008-05-03  0:51 UTC (permalink / raw)
  To: fubar; +Cc: netdev, jgarzik, xemul

From: Jay Vosburgh <fubar@us.ibm.com>
Date: Fri,  2 May 2008 17:49:37 -0700

> From: Pavel Emelyanov <xemul@openvz.org>
> 
> If the call to bond_create_sysfs_entry in bond_create fails, the
> proper rollback is to call unregister_netdevice, not free_netdev.
> Otherwise - kernel BUG at net/core/dev.c:4057!
> 
> Checked with artificial failures injected into bond_create_sysfs_entry.
> 
> Pavel's original patch modified by Jay Vosburgh to move code around
> for clarity (remove goto-hopping within the unwind block).
> 
> Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
> Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds
  2008-05-03  0:49   ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds Jay Vosburgh
  2008-05-03  0:49     ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs Jay Vosburgh
@ 2008-05-03  0:51     ` David Miller
  1 sibling, 0 replies; 12+ messages in thread
From: David Miller @ 2008-05-03  0:51 UTC (permalink / raw)
  To: fubar; +Cc: netdev, jgarzik

From: Jay Vosburgh <fubar@us.ibm.com>
Date: Fri,  2 May 2008 17:49:38 -0700

> 	Fixed an error unwind in bonding_store_bonds that didn't release
> the locks it held, and consolidated unwinds into a common block at the
> end of the function.  Bug reported by Pavel Emelyanov <xemul@openvz.org>,
> who provided a different fix.
> 
> Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs.
  2008-05-03  0:49     ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs Jay Vosburgh
  2008-05-03  0:49       ` [PATCH 4/4] bonding: fix enslavement error unwinds Jay Vosburgh
@ 2008-05-03  0:51       ` David Miller
  1 sibling, 0 replies; 12+ messages in thread
From: David Miller @ 2008-05-03  0:51 UTC (permalink / raw)
  To: fubar; +Cc: netdev, jgarzik, xemul

From: Jay Vosburgh <fubar@us.ibm.com>
Date: Fri,  2 May 2008 17:49:39 -0700

> From: Pavel Emelyanov <xemul@openvz.org>
> 
> The sysfs layer has an internal protection, that ensures, that
> all the process sitting inside ->sore/->show callback exits
> before the appropriate entry is unregistered (the calltraces
> are rather big, but I can provide them if required).
> 
> On the other hand, bonding takes rtnl_lock in
> a) the bonding_store_bonds, i.e. in ->store callback,
> b) module exit before calling the sysfs unregister routines.
> 
> Thus, the classical AB-BA deadlock may occur. To reproduce run
> # while :; do modprobe bonding; rmmod bonding; done
> and
> # while :; do echo '+bond%d' > /sys/class/net/bonding_masters ; done
> in parallel.
> 
> The fix is to move the bond_destroy_sysfs out of the rtnl_lock,
> but _before_ bond_free_all to make sure no bonding devices exist
> after module unload.
> 
> Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
> Acked-by: Jay Vosburgh <fubar@us.ibm.com>

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 4/4] bonding: fix enslavement error unwinds
  2008-05-03  0:49       ` [PATCH 4/4] bonding: fix enslavement error unwinds Jay Vosburgh
@ 2008-05-03  0:52         ` David Miller
  2008-05-03  1:06           ` [PATCH REPOST " Jay Vosburgh
  0 siblings, 1 reply; 12+ messages in thread
From: David Miller @ 2008-05-03  0:52 UTC (permalink / raw)
  To: fubar; +Cc: netdev, jgarzik

From: Jay Vosburgh <fubar@us.ibm.com>
Date: Fri,  2 May 2008 17:49:40 -0700

> 	For commit c2edacf80e155ef54ae4774379d461b60896bc2e, two steps
> were rearranged in the enslavement process: netdev_set_master is now
> before the call to dev_open to open the slave.

Please add the commit header line text to this SHA-ID reference.

> 	This patch updates the error cases and unwind process at the
> end of bond_enslave to match the new order.  Without this patch, it is
> possible for the enslavement to fail, but leave the slave with IFF_SLAVE
> set in its flags.
> 
> Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>

Otherwise:

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH REPOST 4/4] bonding: fix enslavement error unwinds
  2008-05-03  0:52         ` David Miller
@ 2008-05-03  1:06           ` Jay Vosburgh
  2008-05-03  1:07             ` David Miller
  0 siblings, 1 reply; 12+ messages in thread
From: Jay Vosburgh @ 2008-05-03  1:06 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, jgarzik


	As part of:

commit c2edacf80e155ef54ae4774379d461b60896bc2e
Author: Jay Vosburgh <fubar@us.ibm.com>
Date:   Mon Jul 9 10:42:47 2007 -0700

    bonding / ipv6: no addrconf for slaves separately from master

two steps were rearranged in the enslavement process: netdev_set_master
is now before the call to dev_open to open the slave.

	This patch updates the error cases and unwind process at the
end of bond_enslave to match the new order.  Without this patch, it is
possible for the enslavement to fail, but leave the slave with IFF_SLAVE
set in its flags.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
---
 drivers/net/bonding/bond_main.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 3977760..b99ccd2 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1425,13 +1425,13 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 	res = netdev_set_master(slave_dev, bond_dev);
 	if (res) {
 		dprintk("Error %d calling netdev_set_master\n", res);
-		goto err_close;
+		goto err_restore_mac;
 	}
 	/* open the slave since the application closed it */
 	res = dev_open(slave_dev);
 	if (res) {
 		dprintk("Openning slave %s failed\n", slave_dev->name);
-		goto err_restore_mac;
+		goto err_unset_master;
 	}

 	new_slave->dev = slave_dev;
@@ -1444,7 +1444,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 		 */
 		res = bond_alb_init_slave(bond, new_slave);
 		if (res) {
-			goto err_unset_master;
+			goto err_close;
 		}
 	}

@@ -1619,7 +1619,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)

 	res = bond_create_slave_symlinks(bond_dev, slave_dev);
 	if (res)
-		goto err_unset_master;
+		goto err_close;

 	printk(KERN_INFO DRV_NAME
 	       ": %s: enslaving %s as a%s interface with a%s link.\n",
@@ -1631,12 +1631,12 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
 	return 0;

 /* Undo stages on error */
-err_unset_master:
-	netdev_set_master(slave_dev, NULL);
-
 err_close:
 	dev_close(slave_dev);

+err_unset_master:
+	netdev_set_master(slave_dev, NULL);
+
 err_restore_mac:
 	if (!bond->params.fail_over_mac) {
 		memcpy(addr.sa_data, new_slave->perm_hwaddr, ETH_ALEN);
-- 
1.5.2.4


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH REPOST 4/4] bonding: fix enslavement error unwinds
  2008-05-03  1:06           ` [PATCH REPOST " Jay Vosburgh
@ 2008-05-03  1:07             ` David Miller
  0 siblings, 0 replies; 12+ messages in thread
From: David Miller @ 2008-05-03  1:07 UTC (permalink / raw)
  To: fubar; +Cc: netdev, jgarzik

From: Jay Vosburgh <fubar@us.ibm.com>
Date: Fri, 02 May 2008 18:06:02 -0700

> 
> 	As part of:
> 
> commit c2edacf80e155ef54ae4774379d461b60896bc2e
> Author: Jay Vosburgh <fubar@us.ibm.com>
> Date:   Mon Jul 9 10:42:47 2007 -0700
> 
>     bonding / ipv6: no addrconf for slaves separately from master
> 
> two steps were rearranged in the enslavement process: netdev_set_master
> is now before the call to dev_open to open the slave.
> 
> 	This patch updates the error cases and unwind process at the
> end of bond_enslave to match the new order.  Without this patch, it is
> possible for the enslavement to fail, but leave the slave with IFF_SLAVE
> set in its flags.
> 
> Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>

Thanks for fixing up the commit message:

Acked-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH 1/4] bonding: Do not call free_netdev for already registered device.
  2008-05-03  0:49 ` [PATCH 1/4] bonding: Do not call free_netdev for already registered device Jay Vosburgh
  2008-05-03  0:49   ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds Jay Vosburgh
  2008-05-03  0:51   ` [PATCH 1/4] bonding: Do not call free_netdev for already registered device David Miller
@ 2008-05-06 16:17   ` Jeff Garzik
  2 siblings, 0 replies; 12+ messages in thread
From: Jeff Garzik @ 2008-05-06 16:17 UTC (permalink / raw)
  To: Jay Vosburgh; +Cc: netdev, Pavel Emelyanov

Jay Vosburgh wrote:
> From: Pavel Emelyanov <xemul@openvz.org>
> 
> If the call to bond_create_sysfs_entry in bond_create fails, the
> proper rollback is to call unregister_netdevice, not free_netdev.
> Otherwise - kernel BUG at net/core/dev.c:4057!
> 
> Checked with artificial failures injected into bond_create_sysfs_entry.
> 
> Pavel's original patch modified by Jay Vosburgh to move code around
> for clarity (remove goto-hopping within the unwind block).
> 
> Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
> Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
> ---
>  drivers/net/bonding/bond_main.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)

applied 1-4



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2008-05-06 16:17 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-03  0:49 [PATCH 0/4] bonding: bug fixes for 2.6.26 Jay Vosburgh
2008-05-03  0:49 ` [PATCH 1/4] bonding: Do not call free_netdev for already registered device Jay Vosburgh
2008-05-03  0:49   ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds Jay Vosburgh
2008-05-03  0:49     ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs Jay Vosburgh
2008-05-03  0:49       ` [PATCH 4/4] bonding: fix enslavement error unwinds Jay Vosburgh
2008-05-03  0:52         ` David Miller
2008-05-03  1:06           ` [PATCH REPOST " Jay Vosburgh
2008-05-03  1:07             ` David Miller
2008-05-03  0:51       ` [PATCH 3/4] bonding: Deadlock between bonding_store_bonds and bond_destroy_sysfs David Miller
2008-05-03  0:51     ` [PATCH 2/4] bonding: fix error unwind in bonding_store_bonds David Miller
2008-05-03  0:51   ` [PATCH 1/4] bonding: Do not call free_netdev for already registered device David Miller
2008-05-06 16:17   ` Jeff Garzik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).