From: Jesper Krogh <jesper@krogh.cc>
To: Jay Vosburgh <fubar@us.ibm.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
Jeff Garzik <jgarzik@redhat.com>,
aowi@novozymes.com
Subject: Re: Regression in bonding between 2.6.26.8 and 2.6.27.6 - bisected - twice
Date: Mon, 09 Mar 2009 21:53:39 +0100 [thread overview]
Message-ID: <49B581D3.6060807@krogh.cc> (raw)
In-Reply-To: <9712.1236279072@death.nxdomain.ibm.com>
Jay Vosburgh wrote:
> However, I did find another bug I introduced during the "mii
> refactor" patch that you mentioned as being the original source of the
> problem. That bug will cause 802.3ad to not notice speed changes.
>
> Could you test the patch below on your 2.6.68.7 and/or 2.6.27.19
> and see if it resolves your problem (without the forcedeth patch)?
There was something missing from the header to make it compile.. I found
that in a later version. Patch below fixed the problem (without the
forcedeth patch).
diff --git a/drivers/net/bonding/bond_main.c
b/drivers/net/bonding/bond_main.c
index 1b9c4dc..fd61dfb 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -3516,11 +3516,27 @@ static int bond_slave_netdev_event(unsigned long
event, struct net_device *slave
}
break;
case NETDEV_CHANGE:
- /*
- * TODO: is this what we get if somebody
- * sets up a hierarchical bond, then rmmod's
- * one of the slave bonding devices?
- */
+ if (bond->params.mode == BOND_MODE_8023AD ||
+ bond_is_lb(bond)) {
+ struct slave *slave;
+
+ slave = bond_get_slave_by_dev(bond, slave_dev);
+ if (slave) {
+ u16 old_speed = slave->speed;
+ u16 old_duplex = slave->duplex;
+
+ bond_update_speed_duplex(slave);
+
+ if (bond_is_lb(bond))
+ break;
+
+ if (old_speed != slave->speed)
+
bond_3ad_adapter_speed_changed(slave);
+ if (old_duplex != slave->duplex)
+
bond_3ad_adapter_duplex_changed(slave);
+ }
+ }
+
break;
case NETDEV_DOWN:
/*
diff --git a/drivers/net/bonding/bonding.h b/drivers/net/bonding/bonding.h
index fb730ec..b1315e4 100644
--- a/drivers/net/bonding/bonding.h
+++ b/drivers/net/bonding/bonding.h
@@ -248,6 +248,14 @@ static inline struct bonding
*bond_get_bond_by_slave(struct slave *slave)
return (struct bonding *)slave->dev->master->priv;
}
+static inline bool bond_is_lb(const struct bonding *bond)
+{
+ return bond->params.mode == BOND_MODE_TLB
+ || bond->params.mode == BOND_MODE_ALB;
+}
+
+
+
#define BOND_FOM_NONE 0
#define BOND_FOM_ACTIVE 1
#define BOND_FOM_FOLLOW 2
next prev parent reply other threads:[~2009-03-09 20:54 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-11-16 9:41 Regression in bonding between 2.6.26.8 and 2.6.27.6 Jesper Krogh
2008-11-17 23:45 ` Jay Vosburgh
2008-11-18 20:24 ` Jesper Krogh
2008-11-18 20:28 ` Jesper Krogh
2008-11-18 20:53 ` Jay Vosburgh
2008-11-19 7:53 ` Jesper Krogh
2008-12-08 20:42 ` Brandeburg, Jesse
2008-11-19 10:01 ` Jesper Krogh
2009-02-27 9:25 ` Regression in bonding between 2.6.26.8 and 2.6.27.6 - bisected Jesper Krogh
2009-02-27 16:28 ` Jay Vosburgh
2009-02-27 20:07 ` Jesper Krogh
2009-02-27 20:35 ` Jay Vosburgh
2009-02-28 17:21 ` Jesper Krogh
2009-03-01 6:21 ` Jesper Krogh
2009-03-01 13:19 ` Regression in bonding between 2.6.26.8 and 2.6.27.6 - bisected - twice Jesper Krogh
2009-03-05 18:51 ` Jay Vosburgh
2009-03-09 20:53 ` Jesper Krogh [this message]
2009-03-13 23:12 ` David Miller
2009-03-13 23:27 ` Jay Vosburgh
2009-03-16 20:34 ` Jesper Krogh
2009-03-16 20:35 ` David Miller
2009-03-17 20:18 ` Jesper Krogh
2009-03-19 1:39 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49B581D3.6060807@krogh.cc \
--to=jesper@krogh.cc \
--cc=aowi@novozymes.com \
--cc=fubar@us.ibm.com \
--cc=jgarzik@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.