mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
[PATCH] bonding: allow bond to use TSO if slaves support it
Add NETIF_F_TSO (NETIF_F_UFO) to BOND_INTERSECT_FEATURES so that it can be used by a bonding device iff all its slave devices support TSO (UFO). Signed-off-by: Arthur Kepner <akepner@sgi.com> Signed-off-by: Jay Vosburgh <fubar@us.ibm.com> Signed-off-by: Jeff Garzik <jgarzik@pobox.com>
This commit is contained in:
parent
fa8d3549b5
commit
a0de3adf8f
1 changed files with 14 additions and 1 deletions
|
@ -1145,7 +1145,8 @@ int bond_sethwaddr(struct net_device *bond_dev, struct net_device *slave_dev)
|
|||
}
|
||||
|
||||
#define BOND_INTERSECT_FEATURES \
|
||||
(NETIF_F_SG|NETIF_F_IP_CSUM|NETIF_F_NO_CSUM|NETIF_F_HW_CSUM)
|
||||
(NETIF_F_SG|NETIF_F_IP_CSUM|NETIF_F_NO_CSUM|NETIF_F_HW_CSUM|\
|
||||
NETIF_F_TSO|NETIF_F_UFO)
|
||||
|
||||
/*
|
||||
* Compute the common dev->feature set available to all slaves. Some
|
||||
|
@ -1168,6 +1169,16 @@ static int bond_compute_features(struct bonding *bond)
|
|||
NETIF_F_HW_CSUM)))
|
||||
features &= ~NETIF_F_SG;
|
||||
|
||||
/*
|
||||
* features will include NETIF_F_TSO (NETIF_F_UFO) iff all
|
||||
* slave devices support NETIF_F_TSO (NETIF_F_UFO), which
|
||||
* implies that all slaves also support scatter-gather
|
||||
* (NETIF_F_SG), which implies that features also includes
|
||||
* NETIF_F_SG. So no need to check whether we have an
|
||||
* illegal combination of NETIF_F_{TSO,UFO} and
|
||||
* !NETIF_F_SG
|
||||
*/
|
||||
|
||||
features |= (bond_dev->features & ~BOND_INTERSECT_FEATURES);
|
||||
bond_dev->features = features;
|
||||
|
||||
|
@ -4080,6 +4091,8 @@ static void bond_ethtool_get_drvinfo(struct net_device *bond_dev,
|
|||
|
||||
static struct ethtool_ops bond_ethtool_ops = {
|
||||
.get_tx_csum = ethtool_op_get_tx_csum,
|
||||
.get_tso = ethtool_op_get_tso,
|
||||
.get_ufo = ethtool_op_get_ufo,
|
||||
.get_sg = ethtool_op_get_sg,
|
||||
.get_drvinfo = bond_ethtool_get_drvinfo,
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue