Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts: drivers/net/vmxnet3/vmxnet3_ethtool.c net/core/dev.c
This commit is contained in:
@@ -1007,7 +1007,7 @@ rollback:
|
||||
}
|
||||
|
||||
write_lock_bh(&dev_base_lock);
|
||||
hlist_del(&dev->name_hlist);
|
||||
hlist_del_rcu(&dev->name_hlist);
|
||||
write_unlock_bh(&dev_base_lock);
|
||||
|
||||
synchronize_rcu();
|
||||
@@ -5196,27 +5196,27 @@ u32 netdev_fix_features(struct net_device *dev, u32 features)
|
||||
/* Fix illegal checksum combinations */
|
||||
if ((features & NETIF_F_HW_CSUM) &&
|
||||
(features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
|
||||
netdev_info(dev, "mixed HW and IP checksum settings.\n");
|
||||
netdev_warn(dev, "mixed HW and IP checksum settings.\n");
|
||||
features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM);
|
||||
}
|
||||
|
||||
if ((features & NETIF_F_NO_CSUM) &&
|
||||
(features & (NETIF_F_HW_CSUM|NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
|
||||
netdev_info(dev, "mixed no checksumming and other settings.\n");
|
||||
netdev_warn(dev, "mixed no checksumming and other settings.\n");
|
||||
features &= ~(NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM|NETIF_F_HW_CSUM);
|
||||
}
|
||||
|
||||
/* Fix illegal SG+CSUM combinations. */
|
||||
if ((features & NETIF_F_SG) &&
|
||||
!(features & NETIF_F_ALL_CSUM)) {
|
||||
netdev_info(dev,
|
||||
"Dropping NETIF_F_SG since no checksum feature.\n");
|
||||
netdev_dbg(dev,
|
||||
"Dropping NETIF_F_SG since no checksum feature.\n");
|
||||
features &= ~NETIF_F_SG;
|
||||
}
|
||||
|
||||
/* TSO requires that SG is present as well. */
|
||||
if ((features & NETIF_F_ALL_TSO) && !(features & NETIF_F_SG)) {
|
||||
netdev_info(dev, "Dropping TSO features since no SG feature.\n");
|
||||
netdev_dbg(dev, "Dropping TSO features since no SG feature.\n");
|
||||
features &= ~NETIF_F_ALL_TSO;
|
||||
}
|
||||
|
||||
@@ -5226,7 +5226,7 @@ u32 netdev_fix_features(struct net_device *dev, u32 features)
|
||||
|
||||
/* Software GSO depends on SG. */
|
||||
if ((features & NETIF_F_GSO) && !(features & NETIF_F_SG)) {
|
||||
netdev_info(dev, "Dropping NETIF_F_GSO since no SG feature.\n");
|
||||
netdev_dbg(dev, "Dropping NETIF_F_GSO since no SG feature.\n");
|
||||
features &= ~NETIF_F_GSO;
|
||||
}
|
||||
|
||||
@@ -5236,13 +5236,13 @@ u32 netdev_fix_features(struct net_device *dev, u32 features)
|
||||
if (!((features & NETIF_F_GEN_CSUM) ||
|
||||
(features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))
|
||||
== (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))) {
|
||||
netdev_info(dev,
|
||||
netdev_dbg(dev,
|
||||
"Dropping NETIF_F_UFO since no checksum offload features.\n");
|
||||
features &= ~NETIF_F_UFO;
|
||||
}
|
||||
|
||||
if (!(features & NETIF_F_SG)) {
|
||||
netdev_info(dev,
|
||||
netdev_dbg(dev,
|
||||
"Dropping NETIF_F_UFO since no NETIF_F_SG feature.\n");
|
||||
features &= ~NETIF_F_UFO;
|
||||
}
|
||||
@@ -5270,7 +5270,7 @@ int __netdev_update_features(struct net_device *dev)
|
||||
if (dev->features == features)
|
||||
return 0;
|
||||
|
||||
netdev_info(dev, "Features changed: 0x%08x -> 0x%08x\n",
|
||||
netdev_dbg(dev, "Features changed: 0x%08x -> 0x%08x\n",
|
||||
dev->features, features);
|
||||
|
||||
if (dev->netdev_ops->ndo_set_features)
|
||||
@@ -5462,12 +5462,6 @@ int register_netdevice(struct net_device *dev)
|
||||
dev->features |= NETIF_F_SOFT_FEATURES;
|
||||
dev->wanted_features = dev->features & dev->hw_features;
|
||||
|
||||
/* Avoid warning from netdev_fix_features() for GSO without SG */
|
||||
if (!(dev->wanted_features & NETIF_F_SG)) {
|
||||
dev->wanted_features &= ~NETIF_F_GSO;
|
||||
dev->features &= ~NETIF_F_GSO;
|
||||
}
|
||||
|
||||
/* Turn on no cache copy if HW is doing checksum */
|
||||
dev->hw_features |= NETIF_F_NOCACHE_COPY;
|
||||
if ((dev->features & NETIF_F_ALL_CSUM) &&
|
||||
|
||||
Reference in New Issue
Block a user