Patchwork [net-next] net/vxlan: Add ethtool drvinfo

login
register
mail settings
Submitter Yan Burman
Date Jan. 30, 2013, 9:43 a.m.
Message ID <1359538987-17659-1-git-send-email-yanb@mellanox.com>
Download mbox | patch
Permalink /patch/216800/
State Accepted
Delegated to: David Miller
Headers show

Comments

Yan Burman - Jan. 30, 2013, 9:43 a.m.
Implement ethtool get_drvinfo.

Signed-off-by: Yan Burman <yanb@mellanox.com>
---
 drivers/net/vxlan.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)
David Miller - Jan. 31, 2013, 3:47 a.m.
From: Yan Burman <yanb@mellanox.com>
Date: Wed, 30 Jan 2013 11:43:07 +0200

> Implement ethtool get_drvinfo.
> 
> Signed-off-by: Yan Burman <yanb@mellanox.com>

Applied, thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 656230e..72485b9 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -29,6 +29,7 @@ 
 #include <linux/etherdevice.h>
 #include <linux/if_ether.h>
 #include <linux/hash.h>
+#include <linux/ethtool.h>
 #include <net/arp.h>
 #include <net/ndisc.h>
 #include <net/ip.h>
@@ -1271,6 +1272,18 @@  static int vxlan_validate(struct nlattr *tb[], struct nlattr *data[])
 	return 0;
 }
 
+static void vxlan_get_drvinfo(struct net_device *netdev,
+			      struct ethtool_drvinfo *drvinfo)
+{
+	strlcpy(drvinfo->version, VXLAN_VERSION, sizeof(drvinfo->version));
+	strlcpy(drvinfo->driver, "vxlan", sizeof(drvinfo->driver));
+}
+
+static const struct ethtool_ops vxlan_ethtool_ops = {
+	.get_drvinfo	= vxlan_get_drvinfo,
+	.get_link	= ethtool_op_get_link,
+};
+
 static int vxlan_newlink(struct net *net, struct net_device *dev,
 			 struct nlattr *tb[], struct nlattr *data[])
 {
@@ -1348,6 +1361,8 @@  static int vxlan_newlink(struct net *net, struct net_device *dev,
 		vxlan->port_max = ntohs(p->high);
 	}
 
+	SET_ETHTOOL_OPS(dev, &vxlan_ethtool_ops);
+
 	err = register_netdevice(dev);
 	if (!err)
 		hlist_add_head_rcu(&vxlan->hlist, vni_head(net, vxlan->vni));