[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4A67FD4C.4080407@cosmosbay.com>
Date: Thu, 23 Jul 2009 08:03:56 +0200
From: Eric Dumazet <dada1@...mosbay.com>
To: Jay Vosburgh <fubar@...ibm.com>
CC: Or Gerlitz <ogerlitz@...taire.com>,
David Miller <davem@...emloft.net>, netdev@...r.kernel.org
Subject: Re: [PATCH net-next-2.6] bonding: propogate vlan_features to bonding
master
Jay Vosburgh a écrit :
> Propogate the vlan_features of the slave devices to the bonding
> master device, using the same logic as for regular features.
>
> Tested by Or Gerlitz <ogerlitz@...taire.com>, who also removed
> the debug logic from the original test patch.
>
> Signed-off-by: Or Gerlitz <ogerlitz@...taire.com>
> Signed-off-by: Jay Vosburgh <fubar@...ibm.com>
Seems pretty cool, but I could not test it on my dev machine,
since tg3 and bnx2 drivers dont advertize yet vlan_features
>
> diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
> index 3bf0cc6..5a8b882 100644
> --- a/drivers/net/bonding/bond_main.c
> +++ b/drivers/net/bonding/bond_main.c
> @@ -1331,6 +1331,7 @@ static int bond_compute_features(struct bonding *bond)
> struct slave *slave;
> struct net_device *bond_dev = bond->dev;
> unsigned long features = bond_dev->features;
> + unsigned long vlan_features;
> unsigned short max_hard_header_len = max((u16)ETH_HLEN,
> bond_dev->hard_header_len);
> int i;
> @@ -1343,10 +1344,14 @@ static int bond_compute_features(struct bonding *bond)
>
> features &= ~NETIF_F_ONE_FOR_ALL;
>
> + vlan_features = bond->first_slave->dev->vlan_features;
> bond_for_each_slave(bond, slave, i) {
> features = netdev_increment_features(features,
> slave->dev->features,
> NETIF_F_ONE_FOR_ALL);
> + vlan_features = netdev_increment_features(vlan_features,
> + slave->dev->vlan_features,
> + NETIF_F_ONE_FOR_ALL);
> if (slave->dev->hard_header_len > max_hard_header_len)
> max_hard_header_len = slave->dev->hard_header_len;
> }
> @@ -1354,6 +1359,7 @@ static int bond_compute_features(struct bonding *bond)
> done:
> features |= (bond_dev->features & BOND_VLAN_FEATURES);
> bond_dev->features = netdev_fix_features(features, NULL);
> + bond_dev->vlan_features = netdev_fix_features(vlan_features, NULL);
> bond_dev->hard_header_len = max_hard_header_len;
>
> return 0;
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists