Thread (13 messages) flat view 13 messages, 6 authors, 2006-10-10

Re: sky2 (was Re: 2.6.18-mm2)

From: Stephen Hemminger <hidden>
Date: 2006-10-04 03:35:18
Also in: lkml

On Wed, 04 Oct 2006 04:57:08 +0200
Matthias Hentges [off-list ref] wrote:
Hello Stephen,

Am Donnerstag, den 28.09.2006, 16:19 -0700 schrieb Stephen Hemminger:
quoted
Here is the debug patch I sent to the first reporter of the problem.
I know what the offset is supposed to be, so if the PCI subsystem is
wrong, this will show. 
--- sky2.orig/drivers/net/sky2.c	2006-09-28 08:45:27.000000000 -0700
+++ sky2/drivers/net/sky2.c	2006-09-28 08:51:24.000000000 -0700
@@ -2463,6 +2463,7 @@
 
 	sky2_write8(hw, B0_CTST, CS_MRST_CLR);
 
+#define PEX_UNC_ERR_STAT 0x104		/* PCI extended error capablity */
 	/* clear any PEX errors */
 	if (pci_find_capability(hw->pdev, PCI_CAP_ID_EXP)) {
 		hw->err_cap = pci_find_ext_capability(hw->pdev, PCI_EXT_CAP_ID_ERR);
@@ -2470,6 +2471,15 @@
 			sky2_pci_write32(hw,
 					 hw->err_cap + PCI_ERR_UNCOR_STATUS,
 					 0xffffffffUL);
+		else
+			printk(KERN_ERR PFX "pci express found but not extended error support?\n");
+		
+		if (hw->err_cap + PCI_ERR_UNCOR_STATUS != PEX_UNC_ERR_STAT) {
+			
+			printk(KERN_ERR PFX "pci express error status register fixed from %#x to %#x\n",
+			       hw->err_cap, PEX_UNC_ERR_STAT - PCI_ERR_UNCOR_STATUS);
+			hw->err_cap = PEX_UNC_ERR_STAT - PCI_ERR_UNCOR_STATUS;
+		}
 	}
 
 	hw->pmd_type = sky2_read8(hw, B2_PMD_TYP);
while the above patch indeed removes the error messages from my previous
mail, I have since seen random but reproduceable  freezes of the box in
question. I believe they are sky2 related since the freeze can be
triggered by continuous network traffic (like playing a movie over NFS
etc.).
When it fixes what does the log say. I'm probably going to back out
the PCI express extended error using the pci_XXX functions.
The freezes only happen with 2.6.18-mm2 and 2.6.18-mm3. 2.6.18-mm1 works
perfectly fine.
I've hooked up the box to my laptop via a serial cable and captured all
kernel messages from booting up the machine to the freeze. You'll note
that the last messages are from the sky2 driver ;)
Does it still happen with linus git tree. If so, a git bisect might
help. It might not be sky2 related at all, there has been lots of changes.
Once frozen the network is dead, the screen won't wake up from suspend
and CAPSLOCK can not be toggled. SYSRQ (sp?) still works tho.

Any help in debugging this problem would be appreciated =)
The TX timeout is a symptom of a common bug still not fixed where
the transmitter stops. I'm working on reproducing it on my hardware and switches,
because without a reproducible test, its just shooting in the dark and
that isn't working.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help