On Mon, 12 Mar 2007, Stephen Hemminger wrote:
When bonding does fail over it calls set_mac_address. When this happens
as the result of another port going down, the phy_mutex that is common
to both ports is held, so it deadlocks. Setting the address doesn't need
to do anything that needs the phy_mutex, it already has the RTNL to
protect against other admin actions.
This change just disables the receiver to avoid any hardware confusion
while address is changing.
Applied, but no change. For reference, all of the following test cases
fail with skge:
* modprobe bonding miimon=100 mode=active-backup
modprobe skge
ip ad ad 10.0.0.2/24 brd + dev bond0
ip ro ad 0.0.0.0/0 dev bond0 via 10.0.0.1
The link works fine at this point.
ip link set bond0 mtu 9000
Causes the link to stop responding completely. Setting mtu back to 1500
does not change behavior.
* modprobe bonding miimon=100 mode=active-backup
modprobe skge
ifconfig bond0 up
ifenslave bond0 eth2 eth3
ifenslave -d bond0 eth2 eth3
That hangs the machine. No output on serial console. I have to power
cycle to restore access.
* modprobe skge
ifconfig eth2 up
ifconfig eth3 up
ifconfig eth3 down
ifconfig eth2 down
As above, this hangs the machine, and is without the bonding driver
loaded.
-Chris
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html