diff options
author | David S. Miller <davem@davemloft.net> | 2014-06-03 02:07:02 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-06-03 02:07:02 -0400 |
commit | 014b20133bcd442db554c2d2d86181b34cd15b66 (patch) | |
tree | 3402034d4bba5628d21c98258634c58d5bb46bb7 /drivers/net/ethernet/broadcom/tg3.c | |
parent | a68ab98e6c7ab0955babcdc45ca446886f3bfb25 (diff) | |
parent | f062a3844845d267e3716cbc188ad502a15898b7 (diff) |
Merge branch 'ethtool-rssh-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/bwh/net-next
Ben Hutchings says:
====================
Pull request: Fixes for new ethtool RSS commands
This addresses several problems I previously identified with the new
ETHTOOL_{G,S}RSSH commands:
1. Missing validation of reserved parameters
2. Vague documentation
3. Use of unnamed magic number
4. No consolidation with existing driver operations
I don't currently have access to suitable network hardware, but have
tested these changes with a dummy driver that can support various
combinations of operations and sizes, together with (a) Debian's ethtool
3.13 (b) ethtool 3.14 with the submitted patch to use ETHTOOL_{G,S}RSSH
and minor adjustment for fixes 1 and 3.
v2: Update RSS operations in vmxnet3 too
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/tg3.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/tg3.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c index 3b74da5f48a1..df2792d8383d 100644 --- a/drivers/net/ethernet/broadcom/tg3.c +++ b/drivers/net/ethernet/broadcom/tg3.c | |||
@@ -12532,7 +12532,7 @@ static u32 tg3_get_rxfh_indir_size(struct net_device *dev) | |||
12532 | return size; | 12532 | return size; |
12533 | } | 12533 | } |
12534 | 12534 | ||
12535 | static int tg3_get_rxfh_indir(struct net_device *dev, u32 *indir) | 12535 | static int tg3_get_rxfh(struct net_device *dev, u32 *indir, u8 *key) |
12536 | { | 12536 | { |
12537 | struct tg3 *tp = netdev_priv(dev); | 12537 | struct tg3 *tp = netdev_priv(dev); |
12538 | int i; | 12538 | int i; |
@@ -12543,7 +12543,7 @@ static int tg3_get_rxfh_indir(struct net_device *dev, u32 *indir) | |||
12543 | return 0; | 12543 | return 0; |
12544 | } | 12544 | } |
12545 | 12545 | ||
12546 | static int tg3_set_rxfh_indir(struct net_device *dev, const u32 *indir) | 12546 | static int tg3_set_rxfh(struct net_device *dev, const u32 *indir, const u8 *key) |
12547 | { | 12547 | { |
12548 | struct tg3 *tp = netdev_priv(dev); | 12548 | struct tg3 *tp = netdev_priv(dev); |
12549 | size_t i; | 12549 | size_t i; |
@@ -14075,8 +14075,8 @@ static const struct ethtool_ops tg3_ethtool_ops = { | |||
14075 | .get_sset_count = tg3_get_sset_count, | 14075 | .get_sset_count = tg3_get_sset_count, |
14076 | .get_rxnfc = tg3_get_rxnfc, | 14076 | .get_rxnfc = tg3_get_rxnfc, |
14077 | .get_rxfh_indir_size = tg3_get_rxfh_indir_size, | 14077 | .get_rxfh_indir_size = tg3_get_rxfh_indir_size, |
14078 | .get_rxfh_indir = tg3_get_rxfh_indir, | 14078 | .get_rxfh = tg3_get_rxfh, |
14079 | .set_rxfh_indir = tg3_set_rxfh_indir, | 14079 | .set_rxfh = tg3_set_rxfh, |
14080 | .get_channels = tg3_get_channels, | 14080 | .get_channels = tg3_get_channels, |
14081 | .set_channels = tg3_set_channels, | 14081 | .set_channels = tg3_set_channels, |
14082 | .get_ts_info = tg3_get_ts_info, | 14082 | .get_ts_info = tg3_get_ts_info, |