The patch below fixes a problem with shutting down 802.3ad bonds on the
2.6
kernel. Taking the interface down or removing the module causes a stack
dump if spinlock debugging is enabled. This patch was generated from
the
2.6.9 kernel.
This patch has been peer reviewed by our Linux software engineering
team,
and the fix has been verified by our test labs.
Signed-off-by: Mitch Williams <[email protected]>
diff -uprN -X dontdiff linux/drivers/net/bonding/bonding.h
linux-2.6.9/drivers/net/bonding/bonding.h
--- linux/drivers/net/bonding/bonding.h 2004-10-18 14:53:44.000000000
-0700
+++ linux-2.6.9/drivers/net/bonding/bonding.h 2004-10-29
14:01:14.000000000 -0700
@@ -36,8 +36,8 @@
#include "bond_3ad.h"
#include "bond_alb.h"
-#define DRV_VERSION "2.6.0"
-#define DRV_RELDATE "January 14, 2004"
+#define DRV_VERSION "2.6.1"
+#define DRV_RELDATE "October 29, 2004"
#define DRV_NAME "bonding"
#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"
diff -uprN -X dontdiff linux/drivers/net/bonding/bond_main.c
linux-2.6.9/drivers/net/bonding/bond_main.c
--- linux/drivers/net/bonding/bond_main.c 2004-10-18
14:55:21.000000000 -0700
+++ linux-2.6.9/drivers/net/bonding/bond_main.c 2004-10-29
14:01:37.000000000 -0700
@@ -469,6 +469,13 @@
* * Add support for VLAN hardware acceleration capable slaves.
* * Add capability to tag self generated packets in ALB/TLB
modes.
* Set version to 2.6.0.
+ * 2004/10/29 - Mitch Williams <mitch.a.williams at intel dot com>
+ * - Fixed bug when unloading module while using 802.3ad. If
+ * spinlock debugging is turned on, this causes a stack dump.
+ * Solution is to move call to dev_remove_pack outside of the
+ * spinlock.
+ * Set version to 2.6.1.
+ *
*/
//#define BONDING_DEBUG 1
@@ -3566,15 +3573,15 @@ static int bond_close(struct net_device
{
struct bonding *bond = bond_dev->priv;
- write_lock_bh(&bond->lock);
-
- bond_mc_list_destroy(bond);
-
if (bond->params.mode == BOND_MODE_8023AD) {
/* Unregister the receive of LACPDUs */
bond_unregister_lacpdu(bond);
}
+ write_lock_bh(&bond->lock);
+
+ bond_mc_list_destroy(bond);
+
/* signal timers not to re-arm */
bond->kill_timers = 1;
"Williams, Mitch A" <[email protected]> wrote:
>
> The patch below fixes a problem with shutting down 802.3ad bonds on the
> 2.6
> kernel.
I'll fix this patch up and add it to my tree so that it doesn't get lost.
Please fix your email client so that future patches are not wordwrapped,
thanks.
On Wed, 17 Nov 2004, David Smithson wrote:
>
> Hi all. Where could I get my hands on a nicely-formatted version of
> this patch? I'm looking to patch my FC3 2.6.9 kernel.
>
Sorry for the mangling, David. Here's the patch, hopefully looking a
little better now that I've figured out how get Pine talking through our
corporate net.
-Mitch Williams
diff -uprN -X dontdiff linux/drivers/net/bonding/bonding.h linux-2.6.9/drivers/net/bonding/bonding.h
--- linux/drivers/net/bonding/bonding.h 2004-10-18 14:53:44.000000000 -0700
+++ linux-2.6.9/drivers/net/bonding/bonding.h 2004-10-29 14:01:14.000000000 -0700
@@ -36,8 +36,8 @@
#include "bond_3ad.h"
#include "bond_alb.h"
-#define DRV_VERSION "2.6.0"
-#define DRV_RELDATE "January 14, 2004"
+#define DRV_VERSION "2.6.1"
+#define DRV_RELDATE "October 29, 2004"
#define DRV_NAME "bonding"
#define DRV_DESCRIPTION "Ethernet Channel Bonding Driver"
diff -uprN -X dontdiff linux/drivers/net/bonding/bond_main.c linux-2.6.9/drivers/net/bonding/bond_main.c
--- linux/drivers/net/bonding/bond_main.c 2004-10-18 14:55:21.000000000 -0700
+++ linux-2.6.9/drivers/net/bonding/bond_main.c 2004-10-29 14:01:37.000000000 -0700
@@ -469,6 +469,13 @@
* * Add support for VLAN hardware acceleration capable slaves.
* * Add capability to tag self generated packets in ALB/TLB modes.
* Set version to 2.6.0.
+ * 2004/10/29 - Mitch Williams <mitch.a.williams at intel dot com>
+ * - Fixed bug when unloading module while using 802.3ad. If
+ * spinlock debugging is turned on, this causes a stack dump.
+ * Solution is to move call to dev_remov_pack outside of the
+ * spinlock.
+ * Set version to 2.6.1.
+ *
*/
//#define BONDING_DEBUG 1
@@ -3566,15 +3573,15 @@ static int bond_close(struct net_device
{
struct bonding *bond = bond_dev->priv;
- write_lock_bh(&bond->lock);
-
- bond_mc_list_destroy(bond);
-
if (bond->params.mode == BOND_MODE_8023AD) {
/* Unregister the receive of LACPDUs */
bond_unregister_lacpdu(bond);
}
+ write_lock_bh(&bond->lock);
+
+ bond_mc_list_destroy(bond);
+
/* signal timers not to re-arm */
bond->kill_timers = 1;
Hi all. Where could I get my hands on a nicely-formatted version of
this patch? I'm looking to patch my FC3 2.6.9 kernel.
On Tue, 2004-11-02 at 13:43 -0800, Andrew Morton wrote:
> "Williams, Mitch A" <[email protected]> wrote:
> >
> > The patch below fixes a problem with shutting down 802.3ad bonds on the
> > 2.6
> > kernel.
>
> I'll fix this patch up and add it to my tree so that it doesn't get lost.
>
> Please fix your email client so that future patches are not wordwrapped,
> thanks.
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by:
> Sybase ASE Linux Express Edition - download now for FREE
> LinuxWorld Reader's Choice Award Winner for best database on Linux.
> http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click
> _______________________________________________
> Bonding-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bonding-devel
--
David Smithson <[email protected]>
Custom Film Effects