rpms/kernel/devel linux-2.6-sky2-restore-workarounds.patch, NONE, 1.1 kernel-2.6.spec, 1.3286, 1.3287

Chuck Ebbert (cebbert) fedora-extras-commits at redhat.com
Mon Jul 9 17:53:14 UTC 2007


Author: cebbert

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv455

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-sky2-restore-workarounds.patch 
Log Message:
* Mon Jul 09 2007 Chuck Ebbert <cebbert at redhat.com>
- sky2: restore workarounds for lost interrupts


linux-2.6-sky2-restore-workarounds.patch:

--- NEW FILE linux-2.6-sky2-restore-workarounds.patch ---
Sky2 will hang under load due to lost IRQ. It is reproducible fastest on
Yukon EC chips, but others may have same problem.

This patch restores a couple of workarounds from 2.6.16 that reduce
the likely hood of failure. It is not possible to prove this is sufficient
to stop hangs.
 * restart transmit moderation timer in case it expires during IRQ routine
 * default to having 10 HZ watchdog timer.
At this point it more important not to hang than to worry about the
power cost. If possible please put in 2.6.22.

Signed-off-by: Stephen Hemminger <shemminger at linux-foundation.org>


--- a/drivers/net/sky2.c	2007-07-05 22:41:48.000000000 -0700
+++ b/drivers/net/sky2.c	2007-07-05 22:42:46.000000000 -0700
@@ -96,7 +96,7 @@ static int disable_msi = 0;
 module_param(disable_msi, int, 0);
 MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)");
 
-static int idle_timeout = 0;
+static int idle_timeout = 100;
 module_param(idle_timeout, int, 0);
 MODULE_PARM_DESC(idle_timeout, "Watchdog timer for lost interrupts (ms)");
 
@@ -2490,6 +2490,13 @@ static int sky2_poll(struct net_device *
 
 	work_done = sky2_status_intr(hw, work_limit);
 	if (work_done < work_limit) {
+		/* Bug/Errata workaround?
+		 * Need to kick the TX irq moderation timer.
+		 */
+		if (sky2_read8(hw, STAT_TX_TIMER_CTRL) == TIM_START) {
+			sky2_write8(hw, STAT_TX_TIMER_CTRL, TIM_STOP);
+			sky2_write8(hw, STAT_TX_TIMER_CTRL, TIM_START);
+		}
 		netif_rx_complete(dev0);
 
 		/* end of interrupt, re-enables also acts as I/O synchronization */


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.3286
retrieving revision 1.3287
diff -u -r1.3286 -r1.3287
--- kernel-2.6.spec	9 Jul 2007 16:02:56 -0000	1.3286
+++ kernel-2.6.spec	9 Jul 2007 17:52:37 -0000	1.3287
@@ -543,6 +543,7 @@
 Patch670: linux-2.6-ata-quirk.patch
 Patch680: git-wireless-dev.patch
 Patch690: linux-2.6-e1000-ich9.patch
+Patch691: linux-2.6-sky2-restore-workarounds.patch
 Patch710: linux-2.6-bcm43xx-pci-neuter.patch
 #Patch780: linux-2.6-clockevents-fix-resume-logic.patch
 Patch780: linux-2.6-highres-timers.patch
@@ -1119,6 +1120,8 @@
 ApplyPatch git-wireless-dev.patch
 # add patch from markmc so that e1000 supports ICH9
 ApplyPatch linux-2.6-e1000-ich9.patch
+# sky2: restore workarounds for lost interrupts
+ApplyPatch linux-2.6-sky2-restore-workarounds.patch
 # avoid bcm3xx vs bcm43xx-mac80211 PCI ID conflicts
 ApplyPatch linux-2.6-bcm43xx-pci-neuter.patch
 
@@ -2054,6 +2057,9 @@
 %endif
 
 %changelog
+* Mon Jul 09 2007 Chuck Ebbert <cebbert at redhat.com>
+- sky2: restore workarounds for lost interrupts
+
 * Mon Jul 09 2007 Dave Jones <davej at redhat.com>
 - Disable forced HPET on ESB2 too
 




More information about the scm-commits mailing list