All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] virtio_net: implements ethtool_ops.get_drvinfo
@ 2010-06-11  1:29 Taku Izumi
  2010-06-15  4:28 ` Rusty Russell
  0 siblings, 1 reply; 9+ messages in thread
From: Taku Izumi @ 2010-06-11  1:29 UTC (permalink / raw)
  To: David S. Miller, netdev@vger.kernel.org, rusty

This patch implements ethtool_ops.get_drvinfo interface of virtio_net driver.

Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
---
 drivers/net/virtio_net.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

Index: net-next.35/drivers/net/virtio_net.c
===================================================================
--- net-next.35.orig/drivers/net/virtio_net.c
+++ net-next.35/drivers/net/virtio_net.c
@@ -701,6 +701,18 @@ static int virtnet_close(struct net_devi
 	return 0;
 }

+static void virtnet_get_drvinfo(struct net_device *dev,
+				struct ethtool_drvinfo *drvinfo)
+{
+	struct virtnet_info *vi = netdev_priv(dev);
+	struct virtio_device *vdev = vi->vdev;
+
+	strncpy(drvinfo->driver, KBUILD_MODNAME, 32);
+	strncpy(drvinfo->version, "N/A", 32);
+	strncpy(drvinfo->fw_version, "N/A", 32);
+	strncpy(drvinfo->bus_info, dev_name(&vdev->dev), 32);
+}
+
 static int virtnet_set_tx_csum(struct net_device *dev, u32 data)
 {
 	struct virtnet_info *vi = netdev_priv(dev);
@@ -813,6 +825,7 @@ static void virtnet_vlan_rx_kill_vid(str
 }

 static const struct ethtool_ops virtnet_ethtool_ops = {
+	.get_drvinfo = virtnet_get_drvinfo,
 	.set_tx_csum = virtnet_set_tx_csum,
 	.set_sg = ethtool_op_set_sg,
 	.set_tso = ethtool_op_set_tso,


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] virtio_net: implements ethtool_ops.get_drvinfo
  2010-06-11  1:29 [PATCH] virtio_net: implements ethtool_ops.get_drvinfo Taku Izumi
@ 2010-06-15  4:28 ` Rusty Russell
  2010-06-15  5:20   ` Taku Izumi
  0 siblings, 1 reply; 9+ messages in thread
From: Rusty Russell @ 2010-06-15  4:28 UTC (permalink / raw)
  To: Taku Izumi; +Cc: David S. Miller, netdev@vger.kernel.org, Michael S. Tsirkin

On Fri, 11 Jun 2010 10:59:02 am Taku Izumi wrote:
> This patch implements ethtool_ops.get_drvinfo interface of virtio_net driver.
> 
> Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>

Hi Taku!

   Does this have any useful effect?

Thanks,
Rusty.

> ---
>  drivers/net/virtio_net.c |   13 +++++++++++++
>  1 file changed, 13 insertions(+)
> 
> Index: net-next.35/drivers/net/virtio_net.c
> ===================================================================
> --- net-next.35.orig/drivers/net/virtio_net.c
> +++ net-next.35/drivers/net/virtio_net.c
> @@ -701,6 +701,18 @@ static int virtnet_close(struct net_devi
>  	return 0;
>  }
> 
> +static void virtnet_get_drvinfo(struct net_device *dev,
> +				struct ethtool_drvinfo *drvinfo)
> +{
> +	struct virtnet_info *vi = netdev_priv(dev);
> +	struct virtio_device *vdev = vi->vdev;
> +
> +	strncpy(drvinfo->driver, KBUILD_MODNAME, 32);
> +	strncpy(drvinfo->version, "N/A", 32);
> +	strncpy(drvinfo->fw_version, "N/A", 32);
> +	strncpy(drvinfo->bus_info, dev_name(&vdev->dev), 32);
> +}
> +
>  static int virtnet_set_tx_csum(struct net_device *dev, u32 data)
>  {
>  	struct virtnet_info *vi = netdev_priv(dev);
> @@ -813,6 +825,7 @@ static void virtnet_vlan_rx_kill_vid(str
>  }
> 
>  static const struct ethtool_ops virtnet_ethtool_ops = {
> +	.get_drvinfo = virtnet_get_drvinfo,
>  	.set_tx_csum = virtnet_set_tx_csum,
>  	.set_sg = ethtool_op_set_sg,
>  	.set_tso = ethtool_op_set_tso,
> 

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] virtio_net: implements ethtool_ops.get_drvinfo
  2010-06-15  4:28 ` Rusty Russell
@ 2010-06-15  5:20   ` Taku Izumi
  2010-06-16  1:54     ` Rusty Russell
  0 siblings, 1 reply; 9+ messages in thread
From: Taku Izumi @ 2010-06-15  5:20 UTC (permalink / raw)
  To: Rusty Russell; +Cc: David S. Miller, netdev@vger.kernel.org, Michael S. Tsirkin

Hi Rusty,

(2010/06/15 13:28), Rusty Russell wrote:
> On Fri, 11 Jun 2010 10:59:02 am Taku Izumi wrote:
>> This patch implements ethtool_ops.get_drvinfo interface of virtio_net driver.
>>
>> Signed-off-by: Taku Izumi<izumi.taku@jp.fujitsu.com>
> 
> Hi Taku!
> 
>     Does this have any useful effect?

I often use "ethtool -i" command to check what driver controls the ehternet device.
But because current virtio_net driver doesn't support "ethtool -i", it becomes the
following:

	# ethtool -i eth3
	Cannot get driver information: Operation not supported

My patch simply adds the "ethtool -i" support. The following is the result when
using the virtio_net driver with my patch applied to.

	# ethtool -i eth3
	driver: virtio_net
	version: N/A
	firmware-version: N/A
	bus-info: virtio0

Personally, "-i" is one of the most frequently-used option, and
most network drivers support "ethtool -i", so I think virtio_net also should do.

Taku Izumi <izumi.taku@jp.fujitsu.com>






^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] virtio_net: implements ethtool_ops.get_drvinfo
  2010-06-15  5:20   ` Taku Izumi
@ 2010-06-16  1:54     ` Rusty Russell
  0 siblings, 0 replies; 9+ messages in thread
From: Rusty Russell @ 2010-06-16  1:54 UTC (permalink / raw)
  To: Taku Izumi; +Cc: David S. Miller, netdev@vger.kernel.org, Michael S. Tsirkin

On Tue, 15 Jun 2010 02:50:30 pm Taku Izumi wrote:
> Hi Rusty,
> 
> (2010/06/15 13:28), Rusty Russell wrote:
> > On Fri, 11 Jun 2010 10:59:02 am Taku Izumi wrote:
> >> This patch implements ethtool_ops.get_drvinfo interface of virtio_net driver.
> >>
> >> Signed-off-by: Taku Izumi<izumi.taku@jp.fujitsu.com>
> > 
> > Hi Taku!
> > 
> >     Does this have any useful effect?
> 
> I often use "ethtool -i" command to check what driver controls the ehternet device.
> But because current virtio_net driver doesn't support "ethtool -i", it becomes the
> following:
> 
> 	# ethtool -i eth3
> 	Cannot get driver information: Operation not supported
> 
> My patch simply adds the "ethtool -i" support. The following is the result when
> using the virtio_net driver with my patch applied to.
> 
> 	# ethtool -i eth3
> 	driver: virtio_net
> 	version: N/A
> 	firmware-version: N/A
> 	bus-info: virtio0
> 
> Personally, "-i" is one of the most frequently-used option, and
> most network drivers support "ethtool -i", so I think virtio_net also should do.

Thanks, Taku.

I put this explanation in the commit message, and changed 32 to ARRAY_SIZE().
It's queued for sending to DaveM for the next merge window.

Result below.

Thanks!
Rusty.

Subject: virtio_net: implements ethtool_ops.get_drvinfo
Date: Fri, 11 Jun 2010 10:29:02 +0900
From: Taku Izumi <izumi.taku@jp.fujitsu.com>

I often use "ethtool -i" command to check what driver controls the
ehternet device.  But because current virtio_net driver doesn't
support "ethtool -i", it becomes the following:

        # ethtool -i eth3
        Cannot get driver information: Operation not supported

This patch simply adds the "ethtool -i" support. The following is the
result when using the virtio_net driver with my patch applied to.

        # ethtool -i eth3
        driver: virtio_net
        version: N/A
        firmware-version: N/A
        bus-info: virtio0

Personally, "-i" is one of the most frequently-used option, and most
network drivers support "ethtool -i", so I think virtio_net also
should do.

Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (use ARRAY_SIZE)
---
 0 files changed

Index: net-next.35/drivers/net/virtio_net.c
===================================================================
--- net-next.35.orig/drivers/net/virtio_net.c
+++ net-next.35/drivers/net/virtio_net.c
@@ -701,6 +701,19 @@ static int virtnet_close(struct net_devi
 	return 0;
 }
 
+static void virtnet_get_drvinfo(struct net_device *dev,
+				struct ethtool_drvinfo *drvinfo)
+{
+	struct virtnet_info *vi = netdev_priv(dev);
+	struct virtio_device *vdev = vi->vdev;
+
+	strncpy(drvinfo->driver, KBUILD_MODNAME, ARRAY_SIZE(drvinfo->driver));
+	strncpy(drvinfo->version, "N/A", ARRAY_SIZE(drvinfo->version));
+	strncpy(drvinfo->fw_version, "N/A", ARRAY_SIZE(drvinfo->fw_version));
+	strncpy(drvinfo->bus_info, dev_name(&vdev->dev),
+		ARRAY_SIZE(drvinfo->bus_info));
+}
+
 static int virtnet_set_tx_csum(struct net_device *dev, u32 data)
 {
 	struct virtnet_info *vi = netdev_priv(dev);
@@ -813,6 +825,7 @@ static void virtnet_vlan_rx_kill_vid(str
 }
 
 static const struct ethtool_ops virtnet_ethtool_ops = {
+	.get_drvinfo = virtnet_get_drvinfo,
 	.set_tx_csum = virtnet_set_tx_csum,
 	.set_sg = ethtool_op_set_sg,
 	.set_tso = ethtool_op_set_tso,

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH] virtio_net: implements ethtool_ops.get_drvinfo
@ 2010-08-05  3:32 Rusty Russell
  2010-08-05  3:47 ` Ben Hutchings
  0 siblings, 1 reply; 9+ messages in thread
From: Rusty Russell @ 2010-08-05  3:32 UTC (permalink / raw)
  To: netdev; +Cc: Michael S. Tsirkin, Taku Izumi

I often use "ethtool -i" command to check what driver controls the
ehternet device.  But because current virtio_net driver doesn't
support "ethtool -i", it becomes the following:

        # ethtool -i eth3
        Cannot get driver information: Operation not supported

This patch simply adds the "ethtool -i" support. The following is the
result when using the virtio_net driver with my patch applied to.

        # ethtool -i eth3
        driver: virtio_net
        version: N/A
        firmware-version: N/A
        bus-info: virtio0

Personally, "-i" is one of the most frequently-used option, and most
network drivers support "ethtool -i", so I think virtio_net also
should do.

Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (use ARRAY_SIZE)
---
 drivers/net/virtio_net.c |   14 ++++++++++++++
 1 file changed, 14 insertions(+)

Index: net-next.35/drivers/net/virtio_net.c
===================================================================
--- net-next.35.orig/drivers/net/virtio_net.c
+++ net-next.35/drivers/net/virtio_net.c
@@ -701,6 +701,19 @@ static int virtnet_close(struct net_devi
 	return 0;
 }
 
+static void virtnet_get_drvinfo(struct net_device *dev,
+				struct ethtool_drvinfo *drvinfo)
+{
+	struct virtnet_info *vi = netdev_priv(dev);
+	struct virtio_device *vdev = vi->vdev;
+
+	strncpy(drvinfo->driver, KBUILD_MODNAME, ARRAY_SIZE(drvinfo->driver));
+	strncpy(drvinfo->version, "N/A", ARRAY_SIZE(drvinfo->version));
+	strncpy(drvinfo->fw_version, "N/A", ARRAY_SIZE(drvinfo->fw_version));
+	strncpy(drvinfo->bus_info, dev_name(&vdev->dev),
+		ARRAY_SIZE(drvinfo->bus_info));
+}
+
 static int virtnet_set_tx_csum(struct net_device *dev, u32 data)
 {
 	struct virtnet_info *vi = netdev_priv(dev);
@@ -813,6 +825,7 @@ static void virtnet_vlan_rx_kill_vid(str
 }
 
 static const struct ethtool_ops virtnet_ethtool_ops = {
+	.get_drvinfo = virtnet_get_drvinfo,
 	.set_tx_csum = virtnet_set_tx_csum,
 	.set_sg = ethtool_op_set_sg,
 	.set_tso = ethtool_op_set_tso,

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] virtio_net: implements ethtool_ops.get_drvinfo
  2010-08-05  3:32 Rusty Russell
@ 2010-08-05  3:47 ` Ben Hutchings
  2010-08-05  4:54   ` David Miller
  2010-08-06 15:59   ` Loke, Chetan
  0 siblings, 2 replies; 9+ messages in thread
From: Ben Hutchings @ 2010-08-05  3:47 UTC (permalink / raw)
  To: Rusty Russell; +Cc: netdev, Michael S. Tsirkin, Taku Izumi

On Thu, 2010-08-05 at 13:02 +0930, Rusty Russell wrote:
> I often use "ethtool -i" command to check what driver controls the
> ehternet device.  But because current virtio_net driver doesn't
> support "ethtool -i", it becomes the following:
> 
>         # ethtool -i eth3
>         Cannot get driver information: Operation not supported
> 
> This patch simply adds the "ethtool -i" support. The following is the
> result when using the virtio_net driver with my patch applied to.
> 
>         # ethtool -i eth3
>         driver: virtio_net
>         version: N/A
>         firmware-version: N/A
>         bus-info: virtio0
> 
> Personally, "-i" is one of the most frequently-used option, and most
> network drivers support "ethtool -i", so I think virtio_net also
> should do.
[...]

This information is already available generically through sysfs:
    basename $(readlink /sys/class/net/eth3/device)
    basename $(readlink /sys/class/net/eth3/device/driver)

Given that, we should either recommend that people use that method
instead, or we should add an equivalent default implementation of the
get_drvinfo operation.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] virtio_net: implements ethtool_ops.get_drvinfo
  2010-08-05  3:47 ` Ben Hutchings
@ 2010-08-05  4:54   ` David Miller
  2010-08-06 15:59   ` Loke, Chetan
  1 sibling, 0 replies; 9+ messages in thread
From: David Miller @ 2010-08-05  4:54 UTC (permalink / raw)
  To: bhutchings; +Cc: rusty, netdev, mst, izumi.taku

From: Ben Hutchings <bhutchings@solarflare.com>
Date: Thu, 05 Aug 2010 04:47:21 +0100

> On Thu, 2010-08-05 at 13:02 +0930, Rusty Russell wrote:
>> I often use "ethtool -i" command to check what driver controls the
>> ehternet device.  But because current virtio_net driver doesn't
>> support "ethtool -i", it becomes the following:
>> 
>>         # ethtool -i eth3
>>         Cannot get driver information: Operation not supported
>> 
>> This patch simply adds the "ethtool -i" support. The following is the
>> result when using the virtio_net driver with my patch applied to.
>> 
>>         # ethtool -i eth3
>>         driver: virtio_net
>>         version: N/A
>>         firmware-version: N/A
>>         bus-info: virtio0
>> 
>> Personally, "-i" is one of the most frequently-used option, and most
>> network drivers support "ethtool -i", so I think virtio_net also
>> should do.
> [...]
> 
> This information is already available generically through sysfs:
>     basename $(readlink /sys/class/net/eth3/device)
>     basename $(readlink /sys/class/net/eth3/device/driver)
> 
> Given that, we should either recommend that people use that method
> instead, or we should add an equivalent default implementation of the
> get_drvinfo operation.

We've had ethtool for nearly a decade, it's a standard facility and
it's only wise to have all drivers implement as much of the API as
possible.

As such I've applied Rusty's patch and I will apply any patch which
makes a driver more fully provide support for all ethtool facilities.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] virtio_net: implements ethtool_ops.get_drvinfo
  2010-08-05  3:47 ` Ben Hutchings
  2010-08-05  4:54   ` David Miller
@ 2010-08-06 15:59   ` Loke, Chetan
  2010-08-06 16:15     ` Ben Hutchings
  1 sibling, 1 reply; 9+ messages in thread
From: Loke, Chetan @ 2010-08-06 15:59 UTC (permalink / raw)
  To: Ben Hutchings, Rusty Russell; +Cc: netdev, Michael S. Tsirkin, Taku Izumi

> This information is already available generically through sysfs:
>     basename $(readlink /sys/class/net/eth3/device)
>     basename $(readlink /sys/class/net/eth3/device/driver)
> 
> Given that, we should either recommend that people use that method
> instead

sysfs-rules.txt::"Accessing /sys/class/net/eth0/device is a bug in the application."

I understand Dave has accepted the patch already(which is perfect). I'm not being sarcastic but I really want to understand if I can access these nodes.


Chetan Loke



^ permalink raw reply	[flat|nested] 9+ messages in thread

* RE: [PATCH] virtio_net: implements ethtool_ops.get_drvinfo
  2010-08-06 15:59   ` Loke, Chetan
@ 2010-08-06 16:15     ` Ben Hutchings
  0 siblings, 0 replies; 9+ messages in thread
From: Ben Hutchings @ 2010-08-06 16:15 UTC (permalink / raw)
  To: Loke, Chetan; +Cc: Rusty Russell, netdev, Michael S. Tsirkin, Taku Izumi

On Fri, 2010-08-06 at 11:59 -0400, Loke, Chetan wrote:
> > This information is already available generically through sysfs:
> >     basename $(readlink /sys/class/net/eth3/device)
> >     basename $(readlink /sys/class/net/eth3/device/driver)
> > 
> > Given that, we should either recommend that people use that method
> > instead
> 
> sysfs-rules.txt::"Accessing /sys/class/net/eth0/device is a bug in the application."
> 
> I understand Dave has accepted the patch already(which is perfect).
> I'm not being sarcastic but I really want to understand if I can
> access these nodes.

You should probably believe that document rather than me.

Ben.

-- 
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2010-08-06 16:15 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-11  1:29 [PATCH] virtio_net: implements ethtool_ops.get_drvinfo Taku Izumi
2010-06-15  4:28 ` Rusty Russell
2010-06-15  5:20   ` Taku Izumi
2010-06-16  1:54     ` Rusty Russell
  -- strict thread matches above, loose matches on Subject: below --
2010-08-05  3:32 Rusty Russell
2010-08-05  3:47 ` Ben Hutchings
2010-08-05  4:54   ` David Miller
2010-08-06 15:59   ` Loke, Chetan
2010-08-06 16:15     ` Ben Hutchings

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.