Patchwork [v2,net-next] team: add ethtool support

login
register
mail settings
Submitter Flavio Leitner
Date Dec. 30, 2012, 2:37 a.m.
Message ID <1356835053-25602-1-git-send-email-fbl@redhat.com>
Download mbox | patch
Permalink /patch/208708/
State Accepted
Delegated to: David Miller
Headers show

Comments

Flavio Leitner - Dec. 30, 2012, 2:37 a.m.
This patch adds few ethtool operations to team driver.

Signed-off-by: Flavio Leitner <fbl@redhat.com>
---
v2 - removed generic statistics from ethtool

 drivers/net/team/team.c | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
Jiri Pirko - Dec. 30, 2012, 8:51 a.m.
Sun, Dec 30, 2012 at 03:37:33AM CET, fbl@redhat.com wrote:
>This patch adds few ethtool operations to team driver.
>
>Signed-off-by: Flavio Leitner <fbl@redhat.com>
>---
>v2 - removed generic statistics from ethtool
>
> drivers/net/team/team.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
>diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
>index ad86660..7665a088 100644
>--- a/drivers/net/team/team.c
>+++ b/drivers/net/team/team.c
>@@ -28,6 +28,7 @@
> #include <net/genetlink.h>
> #include <net/netlink.h>
> #include <net/sch_generic.h>
>+#include <generated/utsrelease.h>
> #include <linux/if_team.h>
> 
> #define DRV_NAME "team"
>@@ -1731,6 +1732,21 @@ static const struct net_device_ops team_netdev_ops = {
> 	.ndo_fix_features	= team_fix_features,
> };
> 
>+/***********************
>+ * ethtool interface
>+ ***********************/
>+
>+static void team_ethtool_get_drvinfo(struct net_device *dev,
>+				     struct ethtool_drvinfo *drvinfo)
>+{
>+	strncpy(drvinfo->driver, DRV_NAME, 32);
>+	strncpy(drvinfo->version, UTS_RELEASE, 32);
>+}
>+
>+static const struct ethtool_ops team_ethtool_ops = {
>+	.get_drvinfo		= team_ethtool_get_drvinfo,
>+	.get_link		= ethtool_op_get_link,
>+};
> 
> /***********************
>  * rt netlink interface
>@@ -1780,6 +1796,7 @@ static void team_setup(struct net_device *dev)
> 	ether_setup(dev);
> 
> 	dev->netdev_ops = &team_netdev_ops;
>+	dev->ethtool_ops = &team_ethtool_ops;
> 	dev->destructor	= team_destructor;
> 	dev->tx_queue_len = 0;
> 	dev->flags |= IFF_MULTICAST;
>-- 
>1.8.0.1
>

Acked-by: Jiri Pirko <jiri@resnulli.us>
--
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
David Miller - Dec. 30, 2012, 10:33 a.m.
From: Flavio Leitner <fbl@redhat.com>
Date: Sun, 30 Dec 2012 00:37:33 -0200

> This patch adds few ethtool operations to team driver.
> 
> Signed-off-by: Flavio Leitner <fbl@redhat.com>

Applied.
--
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
Ben Hutchings - Dec. 31, 2012, 10:16 p.m.
On Sun, 2012-12-30 at 00:37 -0200, Flavio Leitner wrote:
> This patch adds few ethtool operations to team driver.
> 
> Signed-off-by: Flavio Leitner <fbl@redhat.com>
> ---
> v2 - removed generic statistics from ethtool
> 
>  drivers/net/team/team.c | 17 +++++++++++++++++
>  1 file changed, 17 insertions(+)
> 
> diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
> index ad86660..7665a088 100644
> --- a/drivers/net/team/team.c
> +++ b/drivers/net/team/team.c
[...]
> +static void team_ethtool_get_drvinfo(struct net_device *dev,
> +				     struct ethtool_drvinfo *drvinfo)
> +{
> +	strncpy(drvinfo->driver, DRV_NAME, 32);
> +	strncpy(drvinfo->version, UTS_RELEASE, 32);
> +}
[...]

These must be null-terminated, so use strlcpy() not strncpy().

Ben.
Flavio Leitner - Jan. 3, 2013, 12:32 p.m.
On Mon, Dec 31, 2012 at 10:16:26PM +0000, Ben Hutchings wrote:
> On Sun, 2012-12-30 at 00:37 -0200, Flavio Leitner wrote:
> > This patch adds few ethtool operations to team driver.
> > 
> > Signed-off-by: Flavio Leitner <fbl@redhat.com>
> > ---
> > v2 - removed generic statistics from ethtool
> > 
> >  drivers/net/team/team.c | 17 +++++++++++++++++
> >  1 file changed, 17 insertions(+)
> > 
> > diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
> > index ad86660..7665a088 100644
> > --- a/drivers/net/team/team.c
> > +++ b/drivers/net/team/team.c
> [...]
> > +static void team_ethtool_get_drvinfo(struct net_device *dev,
> > +				     struct ethtool_drvinfo *drvinfo)
> > +{
> > +	strncpy(drvinfo->driver, DRV_NAME, 32);
> > +	strncpy(drvinfo->version, UTS_RELEASE, 32);
> > +}
> [...]
> 
> These must be null-terminated, so use strlcpy() not strncpy().

Ok, I will post another patch fixing this and few other  drivers as
well.

Thank you!

Patch

diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index ad86660..7665a088 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -28,6 +28,7 @@ 
 #include <net/genetlink.h>
 #include <net/netlink.h>
 #include <net/sch_generic.h>
+#include <generated/utsrelease.h>
 #include <linux/if_team.h>
 
 #define DRV_NAME "team"
@@ -1731,6 +1732,21 @@  static const struct net_device_ops team_netdev_ops = {
 	.ndo_fix_features	= team_fix_features,
 };
 
+/***********************
+ * ethtool interface
+ ***********************/
+
+static void team_ethtool_get_drvinfo(struct net_device *dev,
+				     struct ethtool_drvinfo *drvinfo)
+{
+	strncpy(drvinfo->driver, DRV_NAME, 32);
+	strncpy(drvinfo->version, UTS_RELEASE, 32);
+}
+
+static const struct ethtool_ops team_ethtool_ops = {
+	.get_drvinfo		= team_ethtool_get_drvinfo,
+	.get_link		= ethtool_op_get_link,
+};
 
 /***********************
  * rt netlink interface
@@ -1780,6 +1796,7 @@  static void team_setup(struct net_device *dev)
 	ether_setup(dev);
 
 	dev->netdev_ops = &team_netdev_ops;
+	dev->ethtool_ops = &team_ethtool_ops;
 	dev->destructor	= team_destructor;
 	dev->tx_queue_len = 0;
 	dev->flags |= IFF_MULTICAST;