All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] add get_drvinfo() support for netloop
@ 2010-10-22  7:57 Laszlo Ersek
  2010-10-27  9:21 ` Laszlo Ersek
  0 siblings, 1 reply; 3+ messages in thread
From: Laszlo Ersek @ 2010-10-22  7:57 UTC (permalink / raw)
  To: xen-devel

The following patch for the 2.6.18 tree adds get_drvinfo() ("ethtool -i")
support to netloop.

Example:

  # ethtool  -i vif0.3
  driver: netloop
  version: 
  firmware-version: 
  bus-info: vif-0-3

  # ethtool  -i veth3
  driver: netloop
  version: 
  firmware-version: 
  bus-info: vif-0-3

Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 drivers/xen/netback/loopback.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/drivers/xen/netback/loopback.c b/drivers/xen/netback/loopback.c
index 6c45fae..d110f63 100644
--- a/drivers/xen/netback/loopback.c
+++ b/drivers/xen/netback/loopback.c
@@ -62,6 +62,7 @@ MODULE_PARM_DESC(nloopbacks, "Number of netback-loopback devices to create");
 struct net_private {
 	struct net_device *loopback_dev;
 	struct net_device_stats stats;
+	int loop_idx;
 };
 
 static int loopback_open(struct net_device *dev)
@@ -181,8 +182,17 @@ static struct net_device_stats *loopback_get_stats(struct net_device *dev)
 	return &np->stats;
 }
 
+static void get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
+{
+	strcpy(info->driver, "netloop");
+	snprintf(info->bus_info, ETHTOOL_BUSINFO_LEN, "vif-0-%d",
+		 ((struct net_private *)netdev_priv(dev))->loop_idx);
+}
+
 static struct ethtool_ops network_ethtool_ops =
 {
+	.get_drvinfo = get_drvinfo,
+
 	.get_tx_csum = ethtool_op_get_tx_csum,
 	.set_tx_csum = ethtool_op_set_tx_csum,
 	.get_sg = ethtool_op_get_sg,
@@ -200,11 +210,13 @@ static void loopback_set_multicast_list(struct net_device *dev)
 {
 }
 
-static void loopback_construct(struct net_device *dev, struct net_device *lo)
+static void loopback_construct(struct net_device *dev, struct net_device *lo,
+			       int loop_idx)
 {
 	struct net_private *np = netdev_priv(dev);
 
 	np->loopback_dev     = lo;
+	np->loop_idx         = loop_idx;
 
 	dev->open            = loopback_open;
 	dev->stop            = loopback_close;
@@ -250,8 +262,8 @@ static int __init make_loopback(int i)
 	if (!dev2)
 		goto fail_netdev2;
 
-	loopback_construct(dev1, dev2);
-	loopback_construct(dev2, dev1);
+	loopback_construct(dev1, dev2, i);
+	loopback_construct(dev2, dev1, i);
 
 	/*
 	 * Initialise a dummy MAC address for the 'dummy backend' interface. We
-- 
1.7.2.3

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

end of thread, other threads:[~2010-10-27  9:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-10-22  7:57 [PATCH] add get_drvinfo() support for netloop Laszlo Ersek
2010-10-27  9:21 ` Laszlo Ersek
2010-10-27  9:33   ` Keir Fraser

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.