summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Waskiewicz <peter.p.waskiewicz.jr@intel.com>2010-02-26 01:54:20 +0000
committerDavid S. Miller <davem@davemloft.net>2010-02-26 04:18:43 -0800
commitc79c5ffdce14abb4de3878c5aa8c3c6e5093c69b (patch)
treeecbad9995e46991937010622c183e7e33308187a
parentc43491d73ea04277c92a4aa1a7e63ccab4577756 (diff)
downloadop-kernel-dev-c79c5ffdce14abb4de3878c5aa8c3c6e5093c69b.zip
op-kernel-dev-c79c5ffdce14abb4de3878c5aa8c3c6e5093c69b.tar.gz
ethtool: Add n-tuple string length to drvinfo and return it
The drvinfo struct should include the number of strings that get_rx_ntuple will return. It will be variable if an underlying driver implements its own get_rx_ntuple routine, so userspace needs to know how much data is coming. Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--include/linux/ethtool.h1
-rw-r--r--net/core/ethtool.c3
2 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index cca1c3de..f7992a2 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -63,6 +63,7 @@ struct ethtool_drvinfo {
char reserved2[12];
__u32 n_priv_flags; /* number of flags valid in ETHTOOL_GPFLAGS */
__u32 n_stats; /* number of u64's from ETHTOOL_GSTATS */
+ __u32 n_ntuples; /* number of n-tuple filters from GSTRINGS */
__u32 testinfo_len;
__u32 eedump_len; /* Size of data from ETHTOOL_GEEPROM (bytes) */
__u32 regdump_len; /* Size of data from ETHTOOL_GREGS (bytes) */
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index 31b1edd..1c94f48 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -224,6 +224,9 @@ static noinline int ethtool_get_drvinfo(struct net_device *dev, void __user *use
rc = ops->get_sset_count(dev, ETH_SS_PRIV_FLAGS);
if (rc >= 0)
info.n_priv_flags = rc;
+ rc = ops->get_sset_count(dev, ETH_SS_NTUPLE_FILTERS);
+ if (rc >= 0)
+ info.n_ntuples = rc;
}
if (ops->get_regs_len)
info.regdump_len = ops->get_regs_len(dev);
OpenPOWER on IntegriCloud