On Thursday 16 February 2006 23:55, Stephen Hemminger wrote:
> Could everyone who has problems with hangs try the following patch (against
> current 2.6.16-rc3 version) If it gets mangled (it's also at
> http://developer.osdl.org/shemminger/prototypes/sky2-0.15-0.16.diff).

Hi Stephen,

thank you for the patch. The hang still occurs, but I have some debugging data 
from the proc file that might be helpful.

Firstly, I patched sky2_seq_show() slightly to avoid a segfault, there seems 
to be only one port registered in my setup.

Secondly, I added output of the raw op numer, since the if's/switch didn't 
give any output for op 0x41 (OP_PACKET).

--- linux-2.6.16-rc3/drivers/net/sky2.c-0.16    2006-02-17 07:57:21.000000000 
+0100
+++ linux-2.6.16-rc3/drivers/net/sky2.c 2006-02-17 10:35:37.000000000 +0100
@@ -3219,7 +3219,7 @@
                struct net_device *dev = hw->dev[i];
                const struct sky2_port *sky2 = netdev_priv(dev);
 
-               if (!netif_running(dev))
+               if ((dev == 0) || (!netif_running(dev)))
                        continue;
 
                seq_printf(seq, "%s: transmit ring\n", dev->name);
@@ -3233,6 +3233,7 @@
                                u8 op = le->opcode & ~HW_OWNER;
 
                                seq_putc(seq, ' ');
+                               seq_printf(seq, "(%#x) ", op);
 
                                if (op & 0x10) {
                                        seq_puts(seq, "tcp:");

Output of idle/alive state is:

[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring

I reproduced the hang 5 times. Output at hang is:

hang #1:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[122] 0x73c70e5e:66

hang #2:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[68] (0x41) 0x7fae425e:66
[69] (0x41) 0x73c70e5e:66

hang #3:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[241] (0x41) 0x743f0c5e:66

hang #4:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[496] (0x41) 0x20251a5e:66

hang #5:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[241] (0x41) 0x73c5185e:66

Is this helpful? As mentioned, I can reproduce this quite easily (within a few 
minutes), so feel free to send me more patches for testing.

Finally: thanks a lot for taking the effort of writing the sky2 driver. I 
appreciate it very much to have my hardware finally supported with vanilla 
kernel :-)

Wolfgang
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to