Jeff, please apply wherever seems appropriate. It is a bug fix, but for a pretty obscure bit of standards compliance.
Signed-off-by: Jay Vosburgh <[EMAIL PROTECTED]> -J Laurent Chavey <[EMAIL PROTECTED]> wrote: >Remove the requirement to have at least one configured partner to >enable the operation of links. The later is necessary to have the code >in compliance with section 43.3.9 of IEEE 802.3, > >Signed-off-by: Laurent Chavey <[EMAIL PROTECTED]> >-- > >diff -ru linux-2.6.21.3/drivers/net/bonding/bond_3ad.c >linux-2.6.21.3.new/drivers/net/bonding/bond_3ad.c >--- linux-2.6.21.3/drivers/net/bonding/bond_3ad.c 2007-05-24 >14:22:47.000000000 -0700 >+++ linux-2.6.21.3.new/drivers/net/bonding/bond_3ad.c 2007-06-01 >12:41:57.000000000 -0700 >@@ -2303,19 +2303,17 @@ >} > >/* >- * set link state for bonding master: if we have an active partnered >+ * set link state for bonding master: if we have an active > * aggregator, we're up, if not, we're down. Presumes that we cannot > * have an active aggregator if there are no slaves with link up. >+ * Code is implementing compliance with section 43.3.9 of IEEE 802.3. > * > * Called by bond_set_carrier(). Return zero if carrier state does not > * change, nonzero if it does. > */ >int bond_3ad_set_carrier(struct bonding *bond) >{ >- struct aggregator *agg; >- >- agg = __get_active_agg(&(SLAVE_AD_INFO(bond->first_slave).aggregator)); >- if (agg && MAC_ADDRESS_COMPARE(&agg->partner_system, &null_mac_addr)) { >+ if (__get_active_agg(&(SLAVE_AD_INFO(bond->first_slave).aggregator))) { > if (!netif_carrier_ok(bond->dev)) { > netif_carrier_on(bond->dev); > return 1; >@@ -2468,4 +2466,3 @@ > > return ret; >} >- >- >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 - 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