Patchwork [V3,net-next,08/28] ethtool: Add a common function for drivers with transmit time stamping.

login
register
mail settings
Submitter Richard Cochran
Date April 3, 2012, 5:47 p.m.
Message ID <a7ec1893167462243c5657d7ad9a8ef4b20d5e97.1333474523.git.richardcochran@gmail.com>
Download mbox | patch
Permalink /patch/150494/
State Not Applicable
Delegated to: David Miller
Headers show

Comments

Richard Cochran - April 3, 2012, 5:47 p.m.
Currently, most drivers do not support transmit SO_TIMESTAMPING. For those
that do support it, there is one appropriate response to the get_ts_info
query. This patch adds a common function providing this response.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
---
 include/linux/ethtool.h |    1 +
 net/core/ethtool.c      |   11 +++++++++++
 2 files changed, 12 insertions(+), 0 deletions(-)
Ben Hutchings - April 3, 2012, 7:27 p.m.
On Tue, 2012-04-03 at 19:47 +0200, Richard Cochran wrote:
> Currently, most drivers do not support transmit SO_TIMESTAMPING. For those
> that do support it, there is one appropriate response to the get_ts_info
> query. This patch adds a common function providing this response.
> 
> Signed-off-by: Richard Cochran <richardcochran@gmail.com>
[...]
Reviewed-by: Ben Hutchings <bhutchings@solarflare.com>

Patch

diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 1769714..560a247 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -811,6 +811,7 @@  struct net_device;
 
 /* Some generic methods drivers may use in their ethtool_ops */
 u32 ethtool_op_get_link(struct net_device *dev);
+int ethtool_op_get_ts_info(struct net_device *dev, struct ethtool_ts_info *eti);
 
 /**
  * ethtool_rxfh_indir_default - get default value for RX flow hash indirection
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index a723b13..beacdd9 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -38,6 +38,17 @@  u32 ethtool_op_get_link(struct net_device *dev)
 }
 EXPORT_SYMBOL(ethtool_op_get_link);
 
+int ethtool_op_get_ts_info(struct net_device *dev, struct ethtool_ts_info *info)
+{
+	info->so_timestamping =
+		SOF_TIMESTAMPING_TX_SOFTWARE |
+		SOF_TIMESTAMPING_RX_SOFTWARE |
+		SOF_TIMESTAMPING_SOFTWARE;
+	info->phc_index = -1;
+	return 0;
+}
+EXPORT_SYMBOL(ethtool_op_get_ts_info);
+
 /* Handlers for each ethtool command */
 
 #define ETHTOOL_DEV_FEATURE_WORDS	((NETDEV_FEATURE_COUNT + 31) / 32)