[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#577747: linux-image-2.6.32-5-amd64 - same bug, different HW



On Tue, Oct 26, 2010 at 10:27:42AM +0200, Julien Cristau wrote:
> On Mon, Oct 25, 2010 at 22:25:15 +0100, Ben Hutchings wrote:
> 
> > Please build and install a kernel package with the attached patch,
> > following the instructions at
> > <http://kernel-handbook.alioth.debian.org/ch-common-tasks.html#s-common-official>
> > and then try disabling TSO using the ethtool command
> > ('ethtool -K eth0 tso off').
> > 
> Forgot to attach the patch?

D'oh.

Ben.

-- 
Ben Hutchings
We get into the habit of living before acquiring the habit of thinking.
                                                              - Albert Camus
From 3dedfefdfd36f96a2b5614ce678d579456bd8ac2 Mon Sep 17 00:00:00 2001
From: Ben Hutchings <ben@decadent.org.uk>
Date: Mon, 25 Oct 2010 23:18:42 +0200
Subject: [PATCH] at1lc: Allow disabling TX checksum offload and TSO

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 drivers/net/atl1c/atl1c_ethtool.c |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/drivers/net/atl1c/atl1c_ethtool.c b/drivers/net/atl1c/atl1c_ethtool.c
index 9b1e0ea..2f12e54 100644
--- a/drivers/net/atl1c/atl1c_ethtool.c
+++ b/drivers/net/atl1c/atl1c_ethtool.c
@@ -117,6 +117,15 @@ static u32 atl1c_get_tx_csum(struct net_device *netdev)
 	return (netdev->features & NETIF_F_HW_CSUM) != 0;
 }
 
+static int atl1c_set_tso(struct net_device *netdev, u32 data)
+{
+	if (data)
+		netdev->features |= NETIF_F_TSO | NETIF_F_TSO6;
+	else
+		netdev->features &= ~(NETIF_F_TSO | NETIF_F_TSO6);
+	return 0;
+}
+
 static u32 atl1c_get_msglevel(struct net_device *netdev)
 {
 	struct atl1c_adapter *adapter = netdev_priv(netdev);
@@ -309,8 +318,11 @@ static const struct ethtool_ops atl1c_ethtool_ops = {
 	.get_eeprom_len         = atl1c_get_eeprom_len,
 	.get_eeprom             = atl1c_get_eeprom,
 	.get_tx_csum            = atl1c_get_tx_csum,
+	.set_tx_csum            = ethtool_op_set_tx_hw_csum,
 	.get_sg                 = ethtool_op_get_sg,
 	.set_sg                 = ethtool_op_set_sg,
+	.get_tso                = ethtool_op_get_tso,
+	.set_tso                = atl1c_set_tso,
 };
 
 void atl1c_set_ethtool_ops(struct net_device *netdev)
-- 
1.7.2.3

Attachment: signature.asc
Description: Digital signature


Reply to: