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: net: Kill ratelimit.h dependency in linux/net.h net: Add linux/sysctl.h includes where needed. net: Kill ether_table[] declaration. inetpeer: fix race in unused_list manipulations atm: expose ATM device index in sysfs IPVS: bug in ip_vs_ftp, same list heaad used in all netns. bug.h: Move ratelimit warn interfaces to ratelimit.h bonding: cleanup module option descriptions net:8021q:vlan.c Fix pr_info to just give the vlan fullname and version. net: davinci_emac: fix dev_err use at probe can: convert to %pK for kptr_restrict support net: fix ETHTOOL_SFEATURES compatibility with old ethtool_ops.set_flags netfilter: Fix several warnings in compat_mtw_from_user(). netfilter: ipset: fix ip_set_flush return code netfilter: ipset: remove unused variable from type_pf_tdel() netfilter: ipset: Use proper timeout value to jiffies conversion
This commit is contained in:
@@ -233,6 +233,29 @@ static int ethtool_set_feature_compat(struct net_device *dev,
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ethtool_set_flags_compat(struct net_device *dev,
|
||||
int (*legacy_set)(struct net_device *, u32),
|
||||
struct ethtool_set_features_block *features, u32 mask)
|
||||
{
|
||||
u32 value;
|
||||
|
||||
if (!legacy_set)
|
||||
return 0;
|
||||
|
||||
if (!(features[0].valid & mask))
|
||||
return 0;
|
||||
|
||||
value = dev->features & ~features[0].valid;
|
||||
value |= features[0].requested;
|
||||
|
||||
features[0].valid &= ~mask;
|
||||
|
||||
if (legacy_set(dev, value & mask) < 0)
|
||||
netdev_info(dev, "Legacy flags change failed\n");
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int ethtool_set_features_compat(struct net_device *dev,
|
||||
struct ethtool_set_features_block *features)
|
||||
{
|
||||
@@ -249,7 +272,7 @@ static int ethtool_set_features_compat(struct net_device *dev,
|
||||
features, NETIF_F_ALL_TSO);
|
||||
compat |= ethtool_set_feature_compat(dev, dev->ethtool_ops->set_rx_csum,
|
||||
features, NETIF_F_RXCSUM);
|
||||
compat |= ethtool_set_feature_compat(dev, dev->ethtool_ops->set_flags,
|
||||
compat |= ethtool_set_flags_compat(dev, dev->ethtool_ops->set_flags,
|
||||
features, flags_dup_features);
|
||||
|
||||
return compat;
|
||||
|
||||
@@ -38,6 +38,7 @@
|
||||
#include <asm/unaligned.h>
|
||||
#include <linux/filter.h>
|
||||
#include <linux/reciprocal_div.h>
|
||||
#include <linux/ratelimit.h>
|
||||
|
||||
/* No hurry in this branch */
|
||||
static void *__load_pointer(const struct sk_buff *skb, int k, unsigned int size)
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
#include <net/ip.h>
|
||||
#include <net/sock.h>
|
||||
#include <net/net_ratelimit.h>
|
||||
|
||||
#ifdef CONFIG_RPS
|
||||
static int rps_sock_flow_sysctl(ctl_table *table, int write,
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <linux/ratelimit.h>
|
||||
|
||||
#include <net/sock.h>
|
||||
#include <net/net_ratelimit.h>
|
||||
|
||||
#include <asm/byteorder.h>
|
||||
#include <asm/system.h>
|
||||
|
||||
Reference in New Issue
Block a user