[kernel] r18313 - in dists/squeeze/linux-2.6/debian: . patches/features/all/tg3 patches/series

Ben Hutchings benh at alioth.debian.org
Thu Nov 24 07:29:29 UTC 2011


Author: benh
Date: Thu Nov 24 07:29:27 2011
New Revision: 18313

Log:
tg3: Fix I/O failures after chip reset (Closes: #645308; regression in 2.6.32-36)

Added:
   dists/squeeze/linux-2.6/debian/patches/features/all/tg3/0208-tg3-Fix-io-failures-after-chip-reset.patch
Modified:
   dists/squeeze/linux-2.6/debian/changelog
   dists/squeeze/linux-2.6/debian/patches/series/40

Modified: dists/squeeze/linux-2.6/debian/changelog
==============================================================================
--- dists/squeeze/linux-2.6/debian/changelog	Tue Nov 22 20:00:09 2011	(r18312)
+++ dists/squeeze/linux-2.6/debian/changelog	Thu Nov 24 07:29:27 2011	(r18313)
@@ -29,6 +29,8 @@
      http://www.kernel.org/pub/linux/kernel/v2.6/longterm/v2.6.32/ChangeLog-2.6.32.48
     and the bug report which this closes: #647624.
   * mm: avoid null pointer access in vm_struct via /proc/vmallocinfo
+  * tg3: Fix I/O failures after chip reset (Closes: #645308; regression in
+    2.6.32-36)
 
  -- Ben Hutchings <ben at decadent.org.uk>  Thu, 10 Nov 2011 02:28:55 +0000
 

Added: dists/squeeze/linux-2.6/debian/patches/features/all/tg3/0208-tg3-Fix-io-failures-after-chip-reset.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/squeeze/linux-2.6/debian/patches/features/all/tg3/0208-tg3-Fix-io-failures-after-chip-reset.patch	Thu Nov 24 07:29:27 2011	(r18313)
@@ -0,0 +1,64 @@
+From: Matt Carlson <mcarlson at broadcom.com>
+Date: Wed, 20 Jul 2011 10:20:50 +0000
+Subject: [PATCH] tg3: Fix io failures after chip reset
+
+commit 9e975cc291d80d5e4562d6bed15ec171e896d69b upstream.
+
+Commit f2096f94b514d88593355995d5dd276961e88af1, entitled
+"tg3: Add 5720 H2BMC support", needed to add code to preserve some bits
+set by firmware.  Unfortunately the new code causes throughput to stop
+after a chip reset because it enables state machines before they are
+ready.  This patch undoes the problematic code.  The bits will be
+restored later in the init sequence.
+
+Signed-off-by: Matt Carlson <mcarlson at broadcom.com>
+Reviewed-by: Michael Chan <mchan at broadcom.com>
+Signed-off-by: David S. Miller <davem at davemloft.net>
+[bwh: Adjust for flag field changes]
+---
+ drivers/net/tg3.c |   18 ++++++------------
+ 1 files changed, 6 insertions(+), 12 deletions(-)
+
+diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
+index fb57c29..27fe666 100644
+--- a/drivers/net/tg3.c
++++ b/drivers/net/tg3.c
+@@ -7049,16 +7049,11 @@ static int tg3_chip_reset(struct tg3 *tp)
+ 		tw32(TG3PCI_CLOCK_CTRL, tp->pci_clock_ctrl);
+ 	}
+ 
+-	if (tp->tg3_flags3 & TG3_FLG3_ENABLE_APE)
+-		tp->mac_mode = MAC_MODE_APE_TX_EN |
+-			       MAC_MODE_APE_RX_EN |
+-			       MAC_MODE_TDE_ENABLE;
+-
+ 	if (tp->phy_flags & TG3_PHYFLG_PHY_SERDES) {
+-		tp->mac_mode |= MAC_MODE_PORT_MODE_TBI;
++		tp->mac_mode = MAC_MODE_PORT_MODE_TBI;
+ 		val = tp->mac_mode;
+ 	} else if (tp->phy_flags & TG3_PHYFLG_MII_SERDES) {
+-		tp->mac_mode |= MAC_MODE_PORT_MODE_GMII;
++		tp->mac_mode = MAC_MODE_PORT_MODE_GMII;
+ 		val = tp->mac_mode;
+ 	} else
+ 		val = 0;
+@@ -8129,12 +8124,11 @@ static int tg3_reset_hw(struct tg3 *tp, int reset_phy)
+ 		udelay(10);
+ 	}
+ 
+-	if (tp->tg3_flags3 & TG3_FLG3_ENABLE_APE)
+-		tp->mac_mode = MAC_MODE_APE_TX_EN | MAC_MODE_APE_RX_EN;
+-	else
+-		tp->mac_mode = 0;
+ 	tp->mac_mode |= MAC_MODE_TXSTAT_ENABLE | MAC_MODE_RXSTAT_ENABLE |
+-		MAC_MODE_TDE_ENABLE | MAC_MODE_RDE_ENABLE | MAC_MODE_FHDE_ENABLE;
++			MAC_MODE_TDE_ENABLE | MAC_MODE_RDE_ENABLE |
++			MAC_MODE_FHDE_ENABLE;
++	if (tp->tg3_flags3 & TG3_FLG3_ENABLE_APE)
++		tp->mac_mode |= MAC_MODE_APE_TX_EN | MAC_MODE_APE_RX_EN;
+ 	if (!(tp->tg3_flags2 & TG3_FLG2_5705_PLUS) &&
+ 	    !(tp->phy_flags & TG3_PHYFLG_PHY_SERDES) &&
+ 	    GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700)
+-- 
+1.7.7.3
+

Modified: dists/squeeze/linux-2.6/debian/patches/series/40
==============================================================================
--- dists/squeeze/linux-2.6/debian/patches/series/40	Tue Nov 22 20:00:09 2011	(r18312)
+++ dists/squeeze/linux-2.6/debian/patches/series/40	Thu Nov 24 07:29:27 2011	(r18313)
@@ -22,3 +22,4 @@
 + debian/time-Avoid-ABI-change-in-2.6.32.47.patch
 + bugfix/sparc/sparc-sigutil-Include-linux-errno.h.patch
 + bugfix/all/mm-avoid-null-pointer-access-in-vm_struct-via-proc-v.patch
++ features/all/tg3/0208-tg3-Fix-io-failures-after-chip-reset.patch



More information about the Kernel-svn-changes mailing list