diff mbox

[12/14] ehea: Add some more ethtool operations and 64bit stats

Message ID 20110405214249.36d248e7@kryten
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

Anton Blanchard April 5, 2011, 11:42 a.m. UTC
We can use the standard ethtool functions for set_tx_csum and set_sg.
Also switch to using ndo_get_stats64 to get 64bit tx/rx stats.

Signed-off-by: Anton Blanchard <anton@samba.org>
---

--
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

Comments

Ben Hutchings April 5, 2011, 1:07 p.m. UTC | #1
On Tue, 2011-04-05 at 21:42 +1000, Anton Blanchard wrote:
> We can use the standard ethtool functions for set_tx_csum and set_sg.

These are deprecated.  Please use the generic features interface
instead.

> Also switch to using ndo_get_stats64 to get 64bit tx/rx stats.
[...]

Should be a separate patch, really.

Ben.
Anton Blanchard April 5, 2011, 9:35 p.m. UTC | #2
Hi Ben, Jesse,

> > We can use the standard ethtool functions for set_tx_csum and
> > set_sg.
> 
> These are deprecated.  Please use the generic features interface
> instead.
> 
> > Also switch to using ndo_get_stats64 to get 64bit tx/rx stats.

and

> Thank you for removing the old LRO code but the vlan-specific GRO
> entry point is deprecated as well so please don't add new uses of it.

Thanks for the suggestions, I'll incorporate the changes and resubmit.

Anton
--
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
diff mbox

Patch

Index: linux-2.6/drivers/net/ehea/ehea_ethtool.c
===================================================================
--- linux-2.6.orig/drivers/net/ehea/ehea_ethtool.c	2011-03-25 18:34:06.358846652 +1100
+++ linux-2.6/drivers/net/ehea/ehea_ethtool.c	2011-03-25 18:37:37.982330408 +1100
@@ -295,6 +295,8 @@  const struct ethtool_ops ehea_ethtool_op
 	.get_flags = ethtool_op_get_flags,
 	.set_flags = ehea_set_flags,
 	.nway_reset = ehea_nway_reset,		/* Restart autonegotiation */
+	.set_tx_csum = ethtool_op_set_tx_csum,
+	.set_sg = ethtool_op_set_sg,
 };
 
 void ehea_set_ethtool_ops(struct net_device *netdev)
Index: linux-2.6/drivers/net/ehea/ehea_main.c
===================================================================
--- linux-2.6.orig/drivers/net/ehea/ehea_main.c	2011-03-25 18:34:06.378861533 +1100
+++ linux-2.6/drivers/net/ehea/ehea_main.c	2011-03-25 18:37:02.810025945 +1100
@@ -321,10 +321,10 @@  out:
 	spin_unlock_irqrestore(&ehea_bcmc_regs.lock, flags);
 }
 
-static struct net_device_stats *ehea_get_stats(struct net_device *dev)
+static struct rtnl_link_stats64 *ehea_get_stats64(struct net_device *dev,
+					struct rtnl_link_stats64 *stats)
 {
 	struct ehea_port *port = netdev_priv(dev);
-	struct net_device_stats *stats = &port->stats;
 	struct hcp_ehea_port_cb2 *cb2;
 	u64 hret, rx_packets, tx_packets, rx_bytes = 0, tx_bytes = 0;
 	int i;
@@ -3038,7 +3038,7 @@  static const struct net_device_ops ehea_
 #ifdef CONFIG_NET_POLL_CONTROLLER
 	.ndo_poll_controller	= ehea_netpoll,
 #endif
-	.ndo_get_stats		= ehea_get_stats,
+	.ndo_get_stats64	= ehea_get_stats64,
 	.ndo_set_mac_address	= ehea_set_mac_addr,
 	.ndo_validate_addr	= eth_validate_addr,
 	.ndo_set_multicast_list	= ehea_set_multicast_list,