diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 22:19:54 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 22:19:54 -0400 |
| commit | 2242d5eff17cf91110a3c44747f9f2e1a938cbda (patch) | |
| tree | a6459b4d1aeb7f6f08dea3db2e2780f6276abdb0 /drivers/net/bonding/bond_main.c | |
| parent | 5579a782ad7ffa162b1060993e4a298dd50e7a33 (diff) | |
| parent | fd6149d332973bafa50f03ddb0ea9513e67f4517 (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (29 commits)
tcp: Restore ordering of TCP options for the sake of inter-operability
net: Fix disjunct computation of netdev features
sctp: Fix to handle SHUTDOWN in SHUTDOWN_RECEIVED state
sctp: Fix to handle SHUTDOWN in SHUTDOWN-PENDING state
sctp: Add check for the TSN field of the SHUTDOWN chunk
sctp: Drop ICMP packet too big message with MTU larger than current PMTU
p54: enable 2.4/5GHz spectrum by eeprom bits.
orinoco: reduce stack usage in firmware download path
ath5k: fix suspend-related oops on rmmod
[netdrvr] fec_mpc52xx: Implement polling, to make netconsole work.
qlge: Fix MSI/legacy single interrupt bug.
smc911x: Make the driver safer on SMP
smc911x: Add IRQ polarity configuration
smc911x: Allow Kconfig dependency on ARM
sis190: add identifier for Atheros AR8021 PHY
8139x: reduce message severity on driver overlap
igb: add IGB_DCA instead of selecting INTEL_IOATDMA
igb: fix tx data corruption with transition to L0s on 82575
ehea: Fix memory hotplug support
netdev: DM9000: remove BLACKFIN hacking in DM9000 netdev driver
...
Diffstat (limited to 'drivers/net/bonding/bond_main.c')
| -rw-r--r-- | drivers/net/bonding/bond_main.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index 8e2be24f3fe4..832739f38db4 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c | |||
| @@ -1341,18 +1341,24 @@ static int bond_compute_features(struct bonding *bond) | |||
| 1341 | int i; | 1341 | int i; |
| 1342 | 1342 | ||
| 1343 | features &= ~(NETIF_F_ALL_CSUM | BOND_VLAN_FEATURES); | 1343 | features &= ~(NETIF_F_ALL_CSUM | BOND_VLAN_FEATURES); |
| 1344 | features |= NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA | | 1344 | features |= NETIF_F_GSO_MASK | NETIF_F_NO_CSUM; |
| 1345 | NETIF_F_GSO_MASK | NETIF_F_NO_CSUM; | 1345 | |
| 1346 | if (!bond->first_slave) | ||
| 1347 | goto done; | ||
| 1348 | |||
| 1349 | features &= ~NETIF_F_ONE_FOR_ALL; | ||
| 1346 | 1350 | ||
| 1347 | bond_for_each_slave(bond, slave, i) { | 1351 | bond_for_each_slave(bond, slave, i) { |
| 1348 | features = netdev_compute_features(features, | 1352 | features = netdev_increment_features(features, |
| 1349 | slave->dev->features); | 1353 | slave->dev->features, |
| 1354 | NETIF_F_ONE_FOR_ALL); | ||
| 1350 | if (slave->dev->hard_header_len > max_hard_header_len) | 1355 | if (slave->dev->hard_header_len > max_hard_header_len) |
| 1351 | max_hard_header_len = slave->dev->hard_header_len; | 1356 | max_hard_header_len = slave->dev->hard_header_len; |
| 1352 | } | 1357 | } |
| 1353 | 1358 | ||
| 1359 | done: | ||
| 1354 | features |= (bond_dev->features & BOND_VLAN_FEATURES); | 1360 | features |= (bond_dev->features & BOND_VLAN_FEATURES); |
| 1355 | bond_dev->features = features; | 1361 | bond_dev->features = netdev_fix_features(features, NULL); |
| 1356 | bond_dev->hard_header_len = max_hard_header_len; | 1362 | bond_dev->hard_header_len = max_hard_header_len; |
| 1357 | 1363 | ||
| 1358 | return 0; | 1364 | return 0; |
