[kernel] r14711 - in dists/lenny/linux-2.6/debian: . patches/bugfix/all patches/features/all patches/series
Ben Hutchings
benh at alioth.debian.org
Wed Dec 2 05:12:57 UTC 2009
Author: benh
Date: Wed Dec 2 05:12:53 2009
New Revision: 14711
Log:
atl1e: Remove broken implementation of TSO for TCP/IPv6 (Closes: #558426)
and allow other hardware offloads to be disabled in case they are also buggy
Added:
dists/lenny/linux-2.6/debian/patches/bugfix/all/atl1e-remove-broken-tsov6.patch
dists/lenny/linux-2.6/debian/patches/features/all/atl1e-allow-offload-disable.patch
Modified:
dists/lenny/linux-2.6/debian/changelog
dists/lenny/linux-2.6/debian/patches/series/21
Modified: dists/lenny/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny/linux-2.6/debian/changelog Tue Dec 1 17:42:15 2009 (r14710)
+++ dists/lenny/linux-2.6/debian/changelog Wed Dec 2 05:12:53 2009 (r14711)
@@ -13,6 +13,9 @@
different build failures
* usbnet: Set link down initially for drivers that update link state
(Closes: #444043)
+ * atl1e: Remove broken implementation of TSO for TCP/IPv6
+ (Closes: #558426) and allow other hardware offloads to be disabled in
+ case they are also buggy
[ dann frazier ]
* floppy: request and release only the ports we actually use
Added: dists/lenny/linux-2.6/debian/patches/bugfix/all/atl1e-remove-broken-tsov6.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/bugfix/all/atl1e-remove-broken-tsov6.patch Wed Dec 2 05:12:53 2009 (r14711)
@@ -0,0 +1,67 @@
+From: Jie Yang <jie.yang at atheros.com>
+Date: Wed, 2 Dec 2009 11:18:34 +0800
+Subject: [PATCH net-next]atl1e:disable NETIF_F_TSO6 for hardware limit
+
+For hardware limit to support TSOV6, just disable this feature
+Signed-off-by: Jie Yang <jie.yang at atheros.com>
+---
+
+ drivers/net/atl1e/atl1e_main.c | 36 ------------------------------------
+ 1 files changed, 0 insertions(+), 36 deletions(-)
+
+diff --git a/drivers/net/atl1e/atl1e_main.c b/drivers/net/atl1e/atl1e_main.c
+index ad17e74..08f8c09 100644
+--- a/drivers/net/atl1e/atl1e_main.c
++++ b/drivers/net/atl1e/atl1e_main.c
+@@ -1664,41 +1664,6 @@ static int atl1e_tso_csum(struct atl1e_adapter *adapter,
+ }
+ return 0;
+ }
+-
+- if (offload_type & SKB_GSO_TCPV6) {
+- real_len = (((unsigned char *)ipv6_hdr(skb) - skb->data)
+- + ntohs(ipv6_hdr(skb)->payload_len));
+- if (real_len < skb->len)
+- pskb_trim(skb, real_len);
+-
+- /* check payload == 0 byte ? */
+- hdr_len = (skb_transport_offset(skb) + tcp_hdrlen(skb));
+- if (unlikely(skb->len == hdr_len)) {
+- /* only xsum need */
+- dev_warn(&pdev->dev,
+- "IPV6 tso with zero data??\n");
+- goto check_sum;
+- } else {
+- tcp_hdr(skb)->check = ~csum_ipv6_magic(
+- &ipv6_hdr(skb)->saddr,
+- &ipv6_hdr(skb)->daddr,
+- 0, IPPROTO_TCP, 0);
+- tpd->word3 |= 1 << TPD_IP_VERSION_SHIFT;
+- hdr_len >>= 1;
+- tpd->word3 |= (hdr_len & TPD_V6_IPHLLO_MASK) <<
+- TPD_V6_IPHLLO_SHIFT;
+- tpd->word3 |= ((hdr_len >> 3) &
+- TPD_V6_IPHLHI_MASK) <<
+- TPD_V6_IPHLHI_SHIFT;
+- tpd->word3 |= (tcp_hdrlen(skb) >> 2 &
+- TPD_TCPHDRLEN_MASK) <<
+- TPD_TCPHDRLEN_SHIFT;
+- tpd->word3 |= ((skb_shinfo(skb)->gso_size) &
+- TPD_MSS_MASK) << TPD_MSS_SHIFT;
+- tpd->word3 |= 1 << TPD_SEGMENT_EN_SHIFT;
+- }
+- }
+- return 0;
+ }
+
+ check_sum:
+@@ -2287,7 +2252,6 @@ static int atl1e_init_netdev(struct net_device *netdev, struct pci_dev *pdev)
+ NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
+ netdev->features |= NETIF_F_LLTX;
+ netdev->features |= NETIF_F_TSO;
+- netdev->features |= NETIF_F_TSO6;
+
+ return 0;
+ }
+
+
Added: dists/lenny/linux-2.6/debian/patches/features/all/atl1e-allow-offload-disable.patch
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/lenny/linux-2.6/debian/patches/features/all/atl1e-allow-offload-disable.patch Wed Dec 2 05:12:53 2009 (r14711)
@@ -0,0 +1,30 @@
+From cf02d4b259a3b5fa234bf8ffa34aac9c129b0672 Mon Sep 17 00:00:00 2001
+From: Ben Hutchings <ben at decadent.org.uk>
+Date: Mon, 30 Nov 2009 02:57:29 +0000
+Subject: [PATCH] atl1e: Allow TX checksum offload and TSO to be disabled and reenabled
+
+---
+ drivers/net/atl1e/atl1e_ethtool.c | 2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/net/atl1e/atl1e_ethtool.c b/drivers/net/atl1e/atl1e_ethtool.c
+index 60edb9f..b0fb725 100644
+--- a/drivers/net/atl1e/atl1e_ethtool.c
++++ b/drivers/net/atl1e/atl1e_ethtool.c
+@@ -394,11 +394,13 @@ static const struct ethtool_ops atl1e_ethtool_ops = {
+ .get_eeprom = atl1e_get_eeprom,
+ .set_eeprom = atl1e_set_eeprom,
+ .get_tx_csum = atl1e_get_tx_csum,
++ .set_tx_csum = ethtool_op_set_tx_hw_csum,
+ .get_sg = ethtool_op_get_sg,
+ .set_sg = ethtool_op_set_sg,
+ #ifdef NETIF_F_TSO
+ .get_tso = ethtool_op_get_tso,
+ #endif
++ .set_tso = ethtool_op_set_tso,
+ };
+
+ void atl1e_set_ethtool_ops(struct net_device *netdev)
+--
+1.6.5.3
+
Modified: dists/lenny/linux-2.6/debian/patches/series/21
==============================================================================
--- dists/lenny/linux-2.6/debian/patches/series/21 Tue Dec 1 17:42:15 2009 (r14710)
+++ dists/lenny/linux-2.6/debian/patches/series/21 Wed Dec 2 05:12:53 2009 (r14711)
@@ -34,3 +34,5 @@
+ bugfix/all/isdn-hfc_usb-fix-read-buffer-overflow.patch
+ bugfix/all/fuse-prevent-fuse_put_request-on-invalid-pointer.patch
+ features/x86/hpilo-new-pci-device.patch
++ bugfix/all/atl1e-remove-broken-tsov6.patch
++ features/all/atl1e-allow-offload-disable.patch
More information about the Kernel-svn-changes
mailing list