netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support
@ 2005-05-23 21:07 Jon Mason
  2005-05-23 21:20 ` David S. Miller
  0 siblings, 1 reply; 6+ messages in thread
From: Jon Mason @ 2005-05-23 21:07 UTC (permalink / raw)
  To: netdev

Added support to ethtool for NETIF_F_HW_CSUM.

Signed-off-by: Jon Mason <jdmason@us.ibm.com>

--- include/linux/ethtool.h.orig	2005-05-16 08:49:43.000000000 -0500
+++ include/linux/ethtool.h	2005-05-21 15:11:05.000000000 -0500
@@ -256,6 +256,7 @@ struct net_device;
 u32 ethtool_op_get_link(struct net_device *dev);
 u32 ethtool_op_get_tx_csum(struct net_device *dev);
 int ethtool_op_set_tx_csum(struct net_device *dev, u32 data);
+int ethtool_op_set_tx_hw_csum(struct net_device *dev, u32 data);
 u32 ethtool_op_get_sg(struct net_device *dev);
 int ethtool_op_set_sg(struct net_device *dev, u32 data);
 u32 ethtool_op_get_tso(struct net_device *dev);
--- net/core/ethtool.c.orig	2005-05-21 14:16:33.000000000 -0500
+++ net/core/ethtool.c	2005-05-21 18:07:16.000000000 -0500
@@ -29,7 +29,7 @@ u32 ethtool_op_get_link(struct net_devic
 
 u32 ethtool_op_get_tx_csum(struct net_device *dev)
 {
-	return (dev->features & NETIF_F_IP_CSUM) != 0;
+	return (dev->features & (NETIF_F_IP_CSUM | NETIF_F_HW_CSUM)) != 0;
 }
 
 int ethtool_op_set_tx_csum(struct net_device *dev, u32 data)
@@ -42,6 +42,15 @@ int ethtool_op_set_tx_csum(struct net_de
 	return 0;
 }
 
+int ethtool_op_set_tx_hw_csum(struct net_device *dev, u32 data)
+{
+	if (data)
+		dev->features |= NETIF_F_HW_CSUM;
+	else
+		dev->features &= ~NETIF_F_HW_CSUM;
+
+	return 0;
+}
 u32 ethtool_op_get_sg(struct net_device *dev)
 {
 	return (dev->features & NETIF_F_SG) != 0;
@@ -817,3 +826,4 @@ EXPORT_SYMBOL(ethtool_op_get_tx_csum);
 EXPORT_SYMBOL(ethtool_op_set_sg);
 EXPORT_SYMBOL(ethtool_op_set_tso);
 EXPORT_SYMBOL(ethtool_op_set_tx_csum);
+EXPORT_SYMBOL(ethtool_op_set_tx_hw_csum);

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

* Re: [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support
  2005-05-23 21:07 [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support Jon Mason
@ 2005-05-23 21:20 ` David S. Miller
  2005-05-23 21:32   ` Jon Mason
  2005-05-23 21:53   ` Stephen Hemminger
  0 siblings, 2 replies; 6+ messages in thread
From: David S. Miller @ 2005-05-23 21:20 UTC (permalink / raw)
  To: jdmason; +Cc: netdev

From: Jon Mason <jdmason@us.ibm.com>
Subject: [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support
Date: Mon, 23 May 2005 16:07:57 -0500

> Added support to ethtool for NETIF_F_HW_CSUM.
> 
> Signed-off-by: Jon Mason <jdmason@us.ibm.com>

You cannot blindly set these flags, you need to provide
a method for the driver to override the implementation of
this method so it can return and error if it cannot provide
support for this feature.

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

* Re: [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support
  2005-05-23 21:20 ` David S. Miller
@ 2005-05-23 21:32   ` Jon Mason
  2005-05-23 21:48     ` David S. Miller
  2005-05-23 21:53   ` Stephen Hemminger
  1 sibling, 1 reply; 6+ messages in thread
From: Jon Mason @ 2005-05-23 21:32 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev

On Monday 23 May 2005 04:20 pm, David S. Miller wrote:
> From: Jon Mason <jdmason@us.ibm.com>
> Subject: [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support
> Date: Mon, 23 May 2005 16:07:57 -0500
>
> > Added support to ethtool for NETIF_F_HW_CSUM.
> >
> > Signed-off-by: Jon Mason <jdmason@us.ibm.com>
>
> You cannot blindly set these flags, you need to provide
> a method for the driver to override the implementation of
> this method so it can return and error if it cannot provide
> support for this feature.

I am only adding a generic function which gives the ability to use 
NETIF_F_HW_CSUM for ethtool tx offload (instead of only using 
NETIF_F_IP_CSUM).

If ethtool_set_tx_csum does not point to ethtool_op_set_tx_csum or 
ethtool_op_set_tx_hw_csum (or a local driver function) then it will return an 
error.  Isn't this sufficient (as it is what currently happening), or am I 
not sufficently understanding the problem?

Thanks,
Jon

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

* Re: [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support
  2005-05-23 21:32   ` Jon Mason
@ 2005-05-23 21:48     ` David S. Miller
  0 siblings, 0 replies; 6+ messages in thread
From: David S. Miller @ 2005-05-23 21:48 UTC (permalink / raw)
  To: jdmason; +Cc: netdev

From: Jon Mason <jdmason@us.ibm.com>
Date: Mon, 23 May 2005 16:32:55 -0500

> If ethtool_set_tx_csum does not point to ethtool_op_set_tx_csum or
> ethtool_op_set_tx_hw_csum (or a local driver function) then it will
> return an error.  Isn't this sufficient (as it is what currently
> happening), or am I not sufficently understanding the problem?

Ok, that looks right.

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

* Re: [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support
  2005-05-23 21:20 ` David S. Miller
  2005-05-23 21:32   ` Jon Mason
@ 2005-05-23 21:53   ` Stephen Hemminger
  2005-05-26 23:00     ` David S. Miller
  1 sibling, 1 reply; 6+ messages in thread
From: Stephen Hemminger @ 2005-05-23 21:53 UTC (permalink / raw)
  To: David S. Miller; +Cc: jdmason, netdev

On Mon, 23 May 2005 14:20:09 -0700 (PDT)
"David S. Miller" <davem@davemloft.net> wrote:

> From: Jon Mason <jdmason@us.ibm.com>
> Subject: [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support
> Date: Mon, 23 May 2005 16:07:57 -0500
> 
> > Added support to ethtool for NETIF_F_HW_CSUM.
> > 
> > Signed-off-by: Jon Mason <jdmason@us.ibm.com>
> 
> You cannot blindly set these flags, you need to provide
> a method for the driver to override the implementation of
> this method so it can return and error if it cannot provide
> support for this feature.

This patch makes perfect sense because it allows for common code to be
used by device drivers in their ethtool_ops. So this is the logical way to handle
this.

In other words,

drivers/net/sungem.c could do

static struct ethtool_ops gem_ethtool_ops = {

+	.get_tx_csum	  = ethtool_op_get_tx_csum,
+       .set_tx_csum       = ethtool_op_set_tx_hw_csum,
};

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

* Re: [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support
  2005-05-23 21:53   ` Stephen Hemminger
@ 2005-05-26 23:00     ` David S. Miller
  0 siblings, 0 replies; 6+ messages in thread
From: David S. Miller @ 2005-05-26 23:00 UTC (permalink / raw)
  To: shemminger; +Cc: jdmason, netdev

From: Stephen Hemminger <shemminger@osdl.org>
Date: Mon, 23 May 2005 14:53:21 -0700

> This patch makes perfect sense because it allows for common code to be
> used by device drivers in their ethtool_ops. So this is the logical way to handle
> this.

You're right, of course.  I've applied the patch.

Thanks.

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

end of thread, other threads:[~2005-05-26 23:00 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-05-23 21:07 [PATCH linux-2.6.12-rc4-mm1] ethtool: Add NETIF_F_HW_CSUM support Jon Mason
2005-05-23 21:20 ` David S. Miller
2005-05-23 21:32   ` Jon Mason
2005-05-23 21:48     ` David S. Miller
2005-05-23 21:53   ` Stephen Hemminger
2005-05-26 23:00     ` David S. Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).